练习 9:创建逼真的 3D 视图
假设您是一位城市规划者,并且对构建邻近地区的逼真 3D 模型很感兴趣。规划和交通部门的员工已为这一区域的建筑物轮廓线、街灯、树木和样品车创建了 GIS 数据集。您还拥有这一区域的影像,且一名建筑师已提供了一组照片般逼真的建筑模型。
您要将 GIS 数据与 ArcGlobe 中的影像和建筑模型结合起来,制成一个逼真的城市模型。此模型有助于决策者查看拟建的建筑物及其相关视图。也可使用这些模型来研究空间感,或用来模拟城市要素、景观、地标或针对学生或游客的旅游景点。
这是一个高级练习,演示了如何使用 3D 符号系统和 3D 图形工具创建伦敦某个研究区域的逼真视图。
打开伦敦 Globe 文档
- 单击开始 > 所有程序 > ArcGIS > ArcGlobe 10 启动 ArcGlobe。
- 在“ArcGlobe - 启动”对话框中,单击浏览,将地球的默认地理数据库路径设置为:D:\3DAnalyst\3D_Default.gdb
- 接下来,在“ArcGlobe - 启动”对话框中,单击现有 Scene > 浏览更多。
- 导航至 Exercise9 文件夹。
- 双击 London_Start ArcGlobe 文档。
- 单击文件,然后单击另存为。
- 输入 globe 文档的名称 London。
- 单击保存。





设置图层的可见距离范围
您可通过为每个图层设置适当的可见距离来优化 ArcGlobe 文档的性能。可通过指定可见距离范围来控制执行缩放操作时图层何时可见。您既可以为整个图层设置最小和最大距离,也可以根据各切片的距离来确定图层的可见性。
“建筑物”图层旁边处于选中状态的复选框在内容列表中不可用。这意味着,显示当前超过了图层的最大可见距离。稍后您将在本练习中更改其他两个图层的最大可见距离。
- 在内容列表中,右键单击 Holborn.jp2 图层,然后单击属性。
- 单击 Globe 常规选项卡。
- 单击缩放超过下列限制时不显示图层选项。
- 在缩小超过文本框中输入 5。
- 根据各切片距离检查可见性以启用图层离散部分的距离可见性。
- 单击确定。
- 单击书签,然后单击“城市视图”。




有关分配内存缓存的提示
通常,执行质量不佳的 ArcGlobe 文档可通过明确定义的内存缓存设成交互形式。这是一个指定大小的物理内存 (RAM),专供 ArcGlobe 用来提高性能。要获取最佳性能,内存缓存可根据所使用的各数据类型进行微调。由于本练习使用了许多带纹理的 3D 对象和栅格影像,因此,接下来您要分配更大比例的内存缓存,以提高处理这些数据类型的性能。
- 单击自定义菜单,然后单击 ArcGlobe 选项。
- 单击显示缓存选项卡。
- 单击高级按钮。
- 快速浏览内存分配值(以 MB 为单位)和类型。
- 单击确定关闭内存缓存高级设置 对话框。
- 单击确定关闭选项 对话框。



添加要素数据
要在模型上创建 3D 对象,您要向伦敦区域中添加一些本地数据。
-
单击添加数据
按钮。
- 导航至 Exercise9 教程数据文件夹所在的位置。
- 打开“地理数据库”文件夹,然后双击 Lincolns.gdb 地理数据库文件。
- 按住 CTRL 键,单击 Building_Footprints、Street_Lights 和“车辆”要素类。
- 单击添加。
- 单击缩放超过下列限制时不显示图层应用距离可见性范围。
- 在缩小超过文本框中输入 3,保持放大超过文本框的默认设定值 0 不变。
- 单击完成。
- 当 Street_Lights 图层的添加数据向导 出现时,单击将要素显示为 3D 矢量。
- 单击下一步。
- 单击缩放超过下列限制时不显示图层应用距离可见性范围。然后,在距离范围文本框中输入 1 和 0。
- 单击下一步。
- 选择以真实单位显示此图层时所用的典型比例。
- 单击完成。
- 对于“车辆”图层,重复步骤 9 到 14。
- 单击书签,然后单击“鸟瞰图”。








拉伸建筑物
通过拉伸过程,可将二维数据源中的要素投影为三维制图表达。例如,2D 建筑物轮廓线可以拉伸成该建筑物的 3D 块制图表达。在本练习中,您将根据高度值(由楼层数和每层的平均高度加以确定)拉伸建筑物面,以创建逼真的 3D 建筑物形状。
- 在内容列表中,右键单击 Building_Footprints 图层,然后单击属性。
- 单击 Globe 拉伸选项卡。
- 选中拉伸图层中的要素。
- 单击计算拉伸表达式按钮打开表达式构建器 对话框。
- 单击属性 NUM_FLOORS,将其添加到表达式 文本框中。
- 假设每个楼层高 4 米,那么,将每个建筑物的楼层数乘以 4,即可得出每个建筑物的高度。
- 单击确定。
- 单击确定关闭图层属性对话框。




符号化要素
- 在内容列表中,右键单击 Street_Lights 图层,然后单击属性。
- 单击符号系统选项卡。
- 单击类别。
- 单击值字段下拉箭头并单击 MODEL。
- 单击添加所有值。
- 双击 stlght13 的符号。
- 在符号选择器 对话框中,单击样式引用。
- 在样式引用 对话框中,选中 3D 建筑物、3D 街道设施和 3D 车辆,然后单击确定。
- 在符号选择器 对话框中,单击搜索组合框并输入 street light,然后按 Enter。
- 单击“Street Light 13”符号。
- 在大小文本框中输入 8。
- 单击确定。
- 双击 stlght7 的符号。
- 重复步骤 9 到 12(不过,应在“大小”文本框中输入 5),并分配街灯 7 或您更喜欢使用的其他街灯符号。
- 在图层属性 对话框中,单击高级按钮,然后单击旋转。
- 单击按此字段中的角度旋转点下拉列表,然后单击角度。
- 单击确定。
- 单击图层属性 对话框中的确定。
- 在内容列表中,双击“树”图层。
- 在图层属性 对话框中,单击高级按钮,然后单击旋转。
- 单击按此字段中的角度旋转点下拉列表,然后单击随机。
- 单击确定。
- 在图层属性 对话框中,单击高级按钮,然后单击大小。
- 单击按此字段中的值调整点的大小下拉列表,然后单击随机。
- 在最小值框中输入 6,在最大值框中输入 15。
- 单击确定。
- 完成后,单击图层属性 对话框中的确定。











匹配样式中的符号
样式中的符号具有名称。如果您的要素值与这些名称匹配,您可以自动将特定符号与每个匹配的要素相关联。如果您的要素使用了不同的名称,您可以编辑样式中的名称以便匹配。
- 在内容列表中,右键单击“车辆”图层,然后单击打开属性表。
- 关闭表 窗口。
- 双击“车辆”图层打开图层属性 对话框。
- 单击符号系统选项卡。
- 在类别下,单击与样式中的符号匹配.
- 单击值字段下拉箭头并选择 MODEL。
- 单击与样式中的符号匹配下拉列表,然后选择 3D Vehicles.style。
- 单击匹配符号。
- 单击高级按钮,然后单击旋转。
- 单击按此字段中的角度旋转点下拉列表,然后单击“角度”。
- 单击确定。
- 再次单击确定关闭图层属性 对话框。




使用图形工具
有时,您需要显示未在您的 GIS 要素中表示的内容。您可以将图形添加到 ArcGlobe 中,并通过用于要素的逼真符号显示它们。您可以数字化 3D 图形,以表示感兴趣点、描绘边界或道路的线、填充开放区域的面或用来命名或描述地点的文本。为此,您需要添加 Globe 3D 图形工具条。
- 单击自定义,指向工具条,然后选择 Globe 3D 图形。
- 如果要将此工具条与其他工具条停靠在一起,只需将其拖动至所需位置即可。


您也可以通过右键单击工具条或工具条所在的灰色区域来添加/移除工具条。这样会打开工具条列表。显示的工具条将处于选中状态。
创建图形图层
您可以通过将图形存储在某个已命名的图形图层中来控制图形的可见性。图形图层会在 ArcGlobe 内容列表中列出,同其他图层一样,您可以在内容列表中打开和关闭图形图层。
- 单击书签,然后单击“市政厅”。
- 在 Globe 3D 图形 工具条中,单击图形,然后单击新建图形图层。
- 双击“新建图形图层”打开图层属性 对话框。
- 在图层名称文本框中输入 My Buildings。
- 选中缩放超过下列限制时不显示图层。
- 在缩小超过文本框中输入 3。
- 单击确定。


设置目标图层并数字化 3D 点图形
- 在 3D 图形 工具条中,单击图形菜单,指向活动图形图层目标,然后确保选中 My Buildings 图层。
- 单击图形下拉菜单,然后单击默认元素属性。
- 单击标记按钮。
- 单击效果选项卡。
- 取消选中固定屏幕大小。
- 单击确定。
- 单击确定关闭默认元素属性 对话框。
- 在 Globe 3D 图形 工具条中,单击新建标记工具。
- 添加以下图形中高亮显示的点。
-
单击选择图形
工具。
- 右键单击点,然后单击属性。
- 在符号选项卡中,单击更改符号。
- 在符号选择器 对话框中,单击搜索组合框,然后输入 city hall,按 Enter。
- 单击“City Hall 1”符号,然后在角度框中输入 25。
- 单击编辑符号。
- 在符号属性编辑器 中,确保选中 3D 标记选项卡。
- 取消选中保持横纵比,使 3D 符号的尺寸可以随意调整。
- 在尺寸下的深度 (Y) 文本框中输入 70。
- 单击 3D 放置选项卡。
- 为 X 偏移输入 3,为 Y 偏移输入 -5。
- 单击确定。
- 单击确定关闭符号选择器 对话框。
- 单击确定关闭属性 对话框。
- 取消选择市政厅符号,然后浏览显示以查看结果。












数字化文本图形
将市政厅符号添加到场景中后,您可能会发现,在同一视图中添加文本注记非常有用。文本图形元素可用来在场景中数字化 2D 或 3D 文本。
- 单击书签,然后单击“市政厅”。
- 在 3D 图形 工具条中,单击图形菜单,然后单击默认元素属性。
- 单击文本按钮。
- 单击文本选项卡。
- 单击更改符号按钮打开符号选择器对话框。
- 单击颜色下拉箭头,然后从样式调色板中选择“金黄”色。
- 单击确定关闭符号选择器 对话框。
- 单击默认文本元素属性 对话框中的效果选项卡。
- 取消选中固定到表面。
- 单击确定关闭默认文本元素属性 对话框。
- 单击确定关闭默认元素属性 对话框。
- 在 3D 图形 工具条中,单击新建文本工具。
- 单击市政厅图形的屋顶。
- 在文本框中输入 City Hall,然后按 ENTER。
- 取消选择文本元素,然后浏览显示。







添加和修改 3D 图形图层
-
单击添加数据
按钮。
- 浏览至 Exercise9\GeoDatabase 文件夹。
- 双击“街道对象”图层,将其添加到 ArcGlobe 中。
- 单击书签,然后单击街道视图。
- 在Globe 3D 图形 工具条中,单击图形菜单,指向活动图形图层目标,然后单击街道对象图层。
- 单击图形菜单,然后单击默认元素属性。
- 单击标记按钮。
- 在符号选项卡中,单击更改符号。
- 在符号选择器 对话框中,单击搜索组合框并输入 traffic cone,再按 ENTER。
- 单击 Traffic Cone 1 符号。
- 单击确定。
- 单击确定关闭默认标记元素属性 对话框。
- 单击确定关闭默认元素属性 对话框。
- 在 3D 图形 工具条中,单击新建标记。
- 单击三下,将三个标记添加到前三辆汽车的前面,如下图所示。
- 在内容列表中右键单击“街道对象”图层,然后单击另存为图层文件。
- 导航至 Exercise9\GeoDatabase,选择“街道对象”图层文件,然后单击保存。







最终视图
您已经成功创建了伦敦市内一个小区域的逼真 3D 视图。您可以使用其中一种可用的导航工具(例如,导航、平移和缩放)浏览场景。您也可以使用飞行工具在您的城市模型上飞行。

平衡最终视图的内存缓存
- 单击自定义菜单,然后单击 ArcGlobe 选项。
- 单击显示缓存选项卡。
- 单击高级按钮。
- 单击平衡当前内存使用按钮。


在本练习中,您学习了如何将 2D 要素数据集转换成逼真的 3D 数据模型。本练习还重点介绍了如何访问样式的符号库,以便与图层属性匹配。您可以使用多个符号属性选项来快速个性化您的场景。
最后,3D 图形工具条是创建和编辑新的 3D 图形图层和要素所需的工具集。您已学会了如何使用 ArcGlobe 中的 3D 图形工具和符号系统选项来获得更具真实感的 3D 场景。