练习 9:创建逼真的 3D 视图

复杂程度: 中级 数据要求: 随软件安装 数据路径: See Copying the tutorial data 目标: 使用 3D 符号系统和 3D 图形工具将 2D 要素数据集转换成逼真的 3D 数据模型

假设您是一位城市规划者,并且对构建邻近地区的逼真 3D 模型很感兴趣。规划和交通部门的员工已为这一区域的建筑物轮廓线、街灯、树木和样品车创建了 GIS 数据集。您还拥有这一区域的影像,且一名建筑师已提供了一组照片般逼真的建筑模型。

您要将 GIS 数据与 ArcGlobe 中的影像和建筑模型结合起来,制成一个逼真的城市模型。此模型有助于决策者查看拟建的建筑物及其相关视图。也可使用这些模型来研究空间感,或用来模拟城市要素、景观、地标或针对学生或游客的旅游景点。

这是一个高级练习,演示了如何使用 3D 符号系统和 3D 图形工具创建伦敦某个研究区域的逼真视图。

打开伦敦 Globe 文档

步骤:
  1. 单击开始 > 所有程序 > ArcGIS > ArcGlobe 10 启动 ArcGlobe。
  2. 在“ArcGlobe - 启动”对话框中,单击浏览,将地球的默认地理数据库路径设置为:D:\3DAnalyst\3D_Default.gdb
  3. 此位置用于存放在教程练习中生成的输出空间数据。
  4. 接下来,在“ArcGlobe - 启动”对话框中,单击现有 Scene > 浏览更多
  5. 浏览现有的练习 9 ArcGlobe 文档
    将出现打开 对话框。
  6. 导航至 Exercise9 文件夹。
  7. 双击 London_Start ArcGlobe 文档。
  8. 打开 London_Start ArcGlobe 文档
    ArcGlobe 文档包含高分辨率影像(由 DigitalGlobe QuickBird 公司提供)、一个使用树符号符号化的 3D 要素数据集以及一个表示研究区域建筑物的带纹理的 3D 多面体 (multipatch) 数据集。
    英国和爱尔兰概貌。
  9. 单击文件,然后单击另存为
  10. 另存为
  11. 输入 globe 文档的名称 London
  12. 输入新 globe 文档的名称。
  13. 单击保存

设置图层的可见距离范围

您可通过为每个图层设置适当的可见距离来优化 ArcGlobe 文档的性能。可通过指定可见距离范围来控制执行缩放操作时图层何时可见。您既可以为整个图层设置最小和最大距离,也可以根据各切片的距离来确定图层的可见性。

“建筑物”图层旁边处于选中状态的复选框在内容列表中不可用。这意味着,显示当前超过了图层的最大可见距离。稍后您将在本练习中更改其他两个图层的最大可见距离。

步骤:
  1. 在内容列表中,右键单击 Holborn.jp2 图层,然后单击属性
  2. 打开“图层属性”对话框。
  3. 单击 Globe 常规选项卡。
  4. 单击缩放超过下列限制时不显示图层选项。
  5. 指定可见性范围。
  6. 缩小超过文本框中输入 5
  7. 此距离的单位为千米。
  8. 根据各切片距离检查可见性以启用图层离散部分的距离可见性。
  9. 此设置可进一步提高性能,尽管默认情况不启用该设置。启用该设置后,在图层的距离阈值附近进行浏览时数据的离散切片可见。
  10. 单击确定
  11. 在最小和最大距离之间,图层将可见。
  12. 单击书签,然后单击“城市视图”。
  13. “城市视图”书签。
    此时,显示会重新定位至“城市视图”书签。此时,所有数据集均可见,因为对于以此比例显示的所有图层,您处于其可见性距离范围内。
    “城市视图”书签会显示所有图层,因为它在其可见性距离范围内。
    图层的可见性范围也可根据当前显示距离进行设置。在内容列表中右键单击图层,指向可见距离范围,然后使用设置最大距离设置最小距离命令捕获显示距离。

有关分配内存缓存的提示

通常,执行质量不佳的 ArcGlobe 文档可通过明确定义的内存缓存设成交互形式。这是一个指定大小的物理内存 (RAM),专供 ArcGlobe 用来提高性能。要获取最佳性能,内存缓存可根据所使用的各数据类型进行微调。由于本练习使用了许多带纹理的 3D 对象和栅格影像,因此,接下来您要分配更大比例的内存缓存,以提高处理这些数据类型的性能。

步骤:
  1. 单击自定义菜单,然后单击 ArcGlobe 选项
  2. ArcGlobe 选项
  3. 单击显示缓存选项卡。
  4. 单击高级按钮。
  5. 内存缓存高级设置。
  6. 快速浏览内存分配值(以 MB 为单位)和类型。
  7. 每种数据类型的当前内存使用情况为绝对值和其分配大小的百分比形式加以表示,其详细信息在每项右侧的文本框中列出,并以水平图表的形式加以显示。
    总内存缓存大小为各数据类型设定值之和。此总大小不能超过您计算机上所安装的物理内存 (RAM) 大小。
    内存缓存高级设置
    必要时,单击平衡当前内存使用按钮,避免内存缓存的大小超过您的可用物理内存 (RAM)。
    平衡当前内存使用按钮会基于文档的当前内存使用情况自动平衡每种数据类型所使用的内存分配。
    如果您为某个特定数据类型分配的物理内存 (RAM) 量很少,然后创建一个大量使用此数据类型的文档,其会在物理内存即将耗尽时开始将数据传输至磁盘,从而会造成性能下降。
    完全创作了 3D 视图并在其内部执行了一段时间的交互操作后,您要使用此工具来确保最佳应用的内存分配表示此文档中所拥有的数据种类。
  8. 单击确定关闭内存缓存高级设置 对话框。
  9. 单击确定关闭选项 对话框。

添加要素数据

要在模型上创建 3D 对象,您要向伦敦区域中添加一些本地数据。

步骤:
  1. 单击添加数据 添加数据 按钮。
  2. 在“标准”工具条上高亮显示的“添加数据”按钮
  3. 导航至 Exercise9 教程数据文件夹所在的位置。
  4. 打开“地理数据库”文件夹,然后双击 Lincolns.gdb 地理数据库文件。
  5. 按住 CTRL 键,单击 Building_Footprints、Street_Lights 和“车辆”要素类。
  6. 按住 CTRL 键可以选择多项内容。
    使用 CTRL 键选择多项内容。
  7. 单击添加
  8. 每个以 Building_Footprints 开头的要素图层都会连续出现三个添加数据向导
  9. 单击缩放超过下列限制时不显示图层应用距离可见性范围。
  10. 缩小超过文本框中输入 3,保持放大超过文本框的默认设定值 0 不变。
  11. 设置 Building_Footprints 的可见性范围。
  12. 单击完成
  13. 当 Street_Lights 图层的添加数据向导 出现时,单击将要素显示为 3D 矢量
  14. 将要素显示为矢量。
  15. 单击下一步
  16. 单击缩放超过下列限制时不显示图层应用距离可见性范围。然后,在距离范围文本框中输入 10
  17. 设置 Street_Lights 的可见性范围
  18. 单击下一步
  19. 选择以真实单位显示此图层时所用的典型比例。
  20. 设置为以真实单位显示符号。
  21. 单击完成
  22. 对于“车辆”图层,重复步骤 9 到 14。
  23. 如果出现提示,请关闭地理坐标系警告 消息框。数据将被投影到 ArcGlobe 程序当前设置的“地理坐标系”。
    关闭“地理坐标系警告”。
  24. 单击书签,然后单击“鸟瞰图”。
  25. 此时,您可以看到添加至研究区域的所有图层。内容列表指示这些要素图层已被添加为 3D 视图中的叠加图层。
    添加至 ArcGlobe 3D 视图中的所有图层

拉伸建筑物

通过拉伸过程,可将二维数据源中的要素投影为三维制图表达。例如,2D 建筑物轮廓线可以拉伸成该建筑物的 3D 块制图表达。在本练习中,您将根据高度值(由楼层数和每层的平均高度加以确定)拉伸建筑物面,以创建逼真的 3D 建筑物形状。

步骤:
  1. 在内容列表中,右键单击 Building_Footprints 图层,然后单击属性
  2. 打开“图层属性”。
  3. 单击 Globe 拉伸选项卡。
  4. 选中拉伸图层中的要素
  5. 单击计算拉伸表达式按钮打开表达式构建器 对话框。
  6. 为建筑物轮廓线图层启用拉伸。
  7. 单击属性 NUM_FLOORS,将其添加到表达式 文本框中。
  8. 假设每个楼层高 4 米,那么,将每个建筑物的楼层数乘以 4,即可得出每个建筑物的高度。
  9. 将表达式设置为 [NUM_FLOORS] * 4 以反映以下图表。
    使用属性字段和运算符设置拉伸表达式。
  10. 单击确定
  11. 单击确定关闭图层属性对话框。
  12. 此时,2D 建筑物轮廓线要素即被拉伸成了 3D 块。
    如果要改进性能,您也可以选择不绘制拉伸面的底面。
    浏览显示以查看结果。
    被拉伸成 3D 形状的建筑物轮廓线

符号化要素

步骤:
  1. 在内容列表中,右键单击 Street_Lights 图层,然后单击属性
  2. 您也可以双击图层打开图层属性 对话框。
  3. 单击符号系统选项卡。
  4. 单击类别
  5. ArcGlobe 会自动选择唯一值选项。
  6. 单击值字段下拉箭头并单击 MODEL。
  7. 单击添加所有值
  8. 这会将所有唯一值添加到列表中。您可能也单击了添加值按钮,以选择要显示的特定“模型”值。
    使用样式符号化街灯图层。
  9. 双击 stlght13 的符号。
  10. 双击 stlght13 的符号,打开“符号选择器”对话框。
  11. 符号选择器 对话框中,单击样式引用
  12. 访问多个 ESRI 提供的 3D 样式。
  13. 样式引用 对话框中,选中 3D 建筑物、3D 街道设施和 3D 车辆,然后单击确定
  14. “样式”是存储在库中的一组符号、颜色、地图元素和其他图形元素,可在 ArcGIS 中使用它们。
    选中需要引用的样式。
  15. 符号选择器 对话框中,单击搜索组合框并输入 street light,然后按 Enter
  16. 单击“Street Light 13”符号。
  17. 大小文本框中输入 8
  18. 搜索街灯样式并设置其大小属性。
  19. 单击确定
  20. 双击 stlght7 的符号。
  21. 设置 stlght7 的符号。
  22. 重复步骤 9 到 12(不过,应在“大小”文本框中输入 5),并分配街灯 7 或您更喜欢使用的其他街灯符号。
  23. 图层属性 对话框中,单击高级按钮,然后单击旋转
  24. 旋转 3D 符号。
  25. 单击按此字段中的角度旋转点下拉列表,然后单击角度
  26. 使用“角度”字段旋转 3D 符号。
  27. 单击确定
  28. 单击图层属性 对话框中的确定
  29. 在内容列表中,双击“树”图层。
  30. 确保选择符号系统选项卡。
  31. 图层属性 对话框中,单击高级按钮,然后单击旋转
  32. 单击按此字段中的角度旋转点下拉列表,然后单击随机
  33. 按随机属性旋转树会使其显示看起来更自然。
  34. 单击确定
  35. 图层属性 对话框中,单击高级按钮,然后单击大小
  36. 调整 3D 符号的大小
  37. 单击按此字段中的值调整点的大小下拉列表,然后单击随机。
  38. 将一个随机大小值应用到具有最小和最大高度范围的树。
  39. 最小值框中输入 6,在最大值框中输入 15
  40. 单击确定
  41. 完成后,单击图层属性 对话框中的确定
  42. 生成的旋转和大小的随机值将介于为树指定的最大随机值与最小随机值之间。

匹配样式中的符号

样式中的符号具有名称。如果您的要素值与这些名称匹配,您可以自动将特定符号与每个匹配的要素相关联。如果您的要素使用了不同的名称,您可以编辑样式中的名称以便匹配。

步骤:
  1. 在内容列表中,右键单击“车辆”图层,然后单击打开属性表
  2. 窗口中,请注意“模型”列。所列出的每个车辆类型对应于具有相同名称的符号。
    属性表中列出的模型样式对应于具有相同名称的样式中的符号。
  3. 关闭 窗口。
  4. 双击“车辆”图层打开图层属性 对话框。
  5. 单击符号系统选项卡。
  6. 类别下,单击与样式中的符号匹配.
  7. 单击值字段下拉箭头并选择 MODEL。
  8. 单击与样式中的符号匹配下拉列表,然后选择 3D Vehicles.style。
  9. 使用“与样式中的符号匹配”识别 3D 车辆样式中的类别,其用于描绘图层中的要素。
    您也可以单击浏览导航至 C:\Program Files\ArcGIS\Desktop10.0\Styles 文件夹中的 3D Vehicles.style 文件,然后单击打开。此时,“与样式中的符号匹配”会用此样式文件进行填充。
    或者浏览至安装有 ArcGIS 的 Styles 文件夹中的 3D 车辆样式。
  10. 单击匹配符号
  11. 这会添加样式中具有匹配符号的所有唯一值。
    此外,单击添加值,您可以手动指定要显示的唯一值。如果您希望有更多的描述性标注出现在图例和内容列表中,也可以手动编辑标注。这不会更改属性表中的名称。
  12. 单击高级按钮,然后单击旋转
  13. 单击按此字段中的角度旋转点下拉列表,然后单击“角度”。
  14. 单击确定
  15. 再次单击确定关闭图层属性 对话框。
  16. 浏览附近地区以查看结果。
    用样式符号化车辆,并对车辆进行旋转,使其显示更逼真。

使用图形工具

有时,您需要显示未在您的 GIS 要素中表示的内容。您可以将图形添加到 ArcGlobe 中,并通过用于要素的逼真符号显示它们。您可以数字化 3D 图形,以表示感兴趣点、描绘边界或道路的线、填充开放区域的面或用来命名或描述地点的文本。为此,您需要添加 Globe 3D 图形工具条。

步骤:
  1. 单击自定义,指向工具条,然后选择 Globe 3D 图形
  2. 添加 Globe 3D 图形工具条。
    将显示 Globe 3D 图形 工具条。
    Globe 3D 图形工具条
  3. 如果要将此工具条与其他工具条停靠在一起,只需将其拖动至所需位置即可。

您也可以通过右键单击工具条或工具条所在的灰色区域来添加/移除工具条。这样会打开工具条列表。显示的工具条将处于选中状态。

创建图形图层

您可以通过将图形存储在某个已命名的图形图层中来控制图形的可见性。图形图层会在 ArcGlobe 内容列表中列出,同其他图层一样,您可以在内容列表中打开和关闭图形图层。

步骤:
  1. 单击书签,然后单击“市政厅”。
  2. Globe 3D 图形 工具条中,单击图形,然后单击新建图形图层
  3. 新建一个图形图层作为您数字化的所有新图形的目标。
    “新建图形图层”即被添加到“叠加”图层下的内容列表中。
  4. 双击“新建图形图层”打开图层属性 对话框。
  5. 图层名称文本框中输入 My Buildings
  6. 将“新建图形”图层的名称更改为有意义的名称。
  7. 选中缩放超过下列限制时不显示图层
  8. 缩小超过文本框中输入 3
  9. 单击确定

设置目标图层并数字化 3D 点图形

步骤:
  1. 3D 图形 工具条中,单击图形菜单,指向活动图形图层目标,然后确保选中 My Buildings 图层。
  2. 活动图形图层目标
    所有新图形将会被添加到此图层中。
  3. 单击图形下拉菜单,然后单击默认元素属性
  4. “默认元素属性”适用于每个元素类型的所有新图形
  5. 单击标记按钮。
  6. 设置“默认标记元素属性”。
    将打开默认标记元素属性 对话框。
  7. 单击效果选项卡。
  8. 取消选中固定屏幕大小
  9. 取消选中“效果”选项卡中的“固定屏幕大小”。
    在您执行缩放操作时,“固定屏幕大小”选项将不会缩放矢量点图形元素。此处此选项未被选中,因此,执行缩放操作时,相对于地球而言,点图形元素的大小将保持不变。
  10. 单击确定
  11. 单击确定关闭默认元素属性 对话框。
  12. Globe 3D 图形 工具条中,单击新建标记工具。
  13. “标记”元素为点图形,易于进行 3D 符号化,以模拟真实对象。
    3D 点图形可使用 3D 标记符号进行符号化。您可以从现有样式中选择这些符号。采用此方法将真实对象添加至 3D 模型非常简便,无需编辑 GIS 要素。此时,您要为伦敦的市政厅添加 3D 符号。
  14. 添加以下图形中高亮显示的点。
  15. 选择数字化的标记元素,然后右键单击,打开其属性。
    此时会在进行数字化处理的位置绘制一个点图形。
  16. 单击选择图形 选择图形 工具。
  17. 右键单击点,然后单击属性
  18. 符号选项卡中,单击更改符号
  19. 更改元素的属性,包括符号类型。
  20. 符号选择器 对话框中,单击搜索组合框,然后输入 city hall,按 Enter
  21. 单击“City Hall 1”符号,然后在角度框中输入 25
  22. 符号化 3D 建筑物的标记元素。
  23. 单击编辑符号
  24. 符号属性编辑器 中,确保选中 3D 标记选项卡。
  25. 取消选中保持横纵比,使 3D 符号的尺寸可以随意调整。
  26. 尺寸下的深度 (Y) 文本框中输入 70
  27. 调整“3D 标记符号”的属性。
    3D 预览窗口中调整 cityHall1 符号的尺寸。
  28. 单击 3D 放置选项卡。
  29. X 偏移输入 3,为 Y 偏移输入 -5
  30. 设置放置偏移。
    在 x,y 平面中,3D 符号将根据 x 和 y 的设定值进行偏移。
  31. 单击确定
  32. 单击确定关闭符号选择器 对话框。
  33. 单击确定关闭属性 对话框。
  34. 取消选择市政厅符号,然后浏览显示以查看结果。
  35. 要取消选择图形,请使用选择图形工具,然后单击符号附近的位置。或者,单击清除所选要素 清除所选要素 按钮。
    “市政厅”替换了单一点元素,使显示更逼真。

数字化文本图形

将市政厅符号添加到场景中后,您可能会发现,在同一视图中添加文本注记非常有用。文本图形元素可用来在场景中数字化 2D 或 3D 文本。

步骤:
  1. 单击书签,然后单击“市政厅”。
  2. 放大至“市政厅”的屋顶。
  3. 3D 图形 工具条中,单击图形菜单,然后单击默认元素属性
  4. 单击文本按钮。
  5. 将打开默认文本元素属性 对话框。
    编辑新的 2D 文本的默认文本属性。
  6. 单击文本选项卡。
  7. “默认文本元素属性”对话框
  8. 单击更改符号按钮打开符号选择器对话框。
  9. 单击颜色下拉箭头,然后从样式调色板中选择“金黄”色。
  10. 在显示中更改要数字化的文本的颜色。
    鼠标悬停提示中会显示样式调色板中该颜色的名称。
  11. 单击确定关闭符号选择器 对话框。
  12. 单击默认文本元素属性 对话框中的效果选项卡。
  13. 取消选中固定到表面
  14. 取消选中“固定到表面”。
    如果您要将文本图形固定到基础地球表面,“固定到表面”选项很有用。在本例中,我们要数字化“市政厅”屋顶上的文本。
  15. 单击确定关闭默认文本元素属性 对话框。
  16. 单击确定关闭默认元素属性 对话框。
  17. 3D 图形 工具条中,单击新建文本工具。
  18. 新建 2D 文本
  19. 单击市政厅图形的屋顶。
  20. 在文本框中输入 City Hall,然后按 ENTER
  21. 数字化“City Hall”上面的文本。
  22. 取消选择文本元素,然后浏览显示。
  23. 文本随即出现在您单击的位置。
    默认情况下,文本图形将始终以广告牌方式面向查看者。

添加和修改 3D 图形图层

步骤:
  1. 单击添加数据 添加数据 按钮。
  2. 浏览至 Exercise9\GeoDatabase 文件夹。
  3. 双击“街道对象”图层,将其添加到 ArcGlobe 中。
  4. 将图层文件添加到地球中
  5. 单击书签,然后单击街道视图
  6. Globe 3D 图形 工具条中,单击图形菜单,指向活动图形图层目标,然后单击街道对象图层。
  7. 更改“活动图形目标图层”。
  8. 单击图形菜单,然后单击默认元素属性
  9. 单击标记按钮。
  10. 符号选项卡中,单击更改符号
  11. 符号选择器 对话框中,单击搜索组合框并输入 traffic cone,再按 ENTER。
  12. 搜索街道设施,以便将其添加到显示中。
  13. 单击 Traffic Cone 1 符号。
  14. 单击确定
  15. 单击确定关闭默认标记元素属性 对话框。
  16. 单击确定关闭默认元素属性 对话框。
  17. 3D 图形 工具条中,单击新建标记
  18. 单击三下,将三个标记添加到前三辆汽车的前面,如下图所示。
  19. 使绘图工具保持活动状态,以便您一次可以数字化多个元素。在“ArcGlobe 选项”对话框的“常规”选项卡中设置此属性。
  20. 在内容列表中右键单击“街道对象”图层,然后单击另存为图层文件
  21. 另存为图层文件
  22. 导航至 Exercise9\GeoDatabase,选择“街道对象”图层文件,然后单击保存
  23. 将此图层保存到 Exercise9 地理数据库中。
    如果系统提示是否覆盖现有文件,请单击。您创建的新标记将保存到“街道对象”图层中。
    覆盖现有图层,以保存您刚刚数字化的图形。

最终视图

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

使用“导航”工具查看完成的逼真 3D 视图。

平衡最终视图的内存缓存

步骤:
  1. 单击自定义菜单,然后单击 ArcGlobe 选项
  2. 单击显示缓存选项卡。
  3. 单击高级按钮。
  4. 快速浏览每种类型的内存值(以 MB 为单位)。您会看到,“3D 对象”(纹理)的内存缓存大小已超出其限制。
    超出限制的 3D 对象和纹理的内存缓存
  5. 单击平衡当前内存使用按钮。
  6. 平衡当前内存缓存的使用。
    分配给 ArcGlobe 的内存总量将进行重新分配(按照每种存储器类型的当前使用百分比),从而快速地优化当前文档的存储器设置。
    对于各种类型的存储器,至少保证为其分配 10 MB 的内存量。保存 ArcGlobe 文档可确保在以后每次打开此文档的时候都能够执行这些优化的存储器设置。

在本练习中,您学习了如何将 2D 要素数据集转换成逼真的 3D 数据模型。本练习还重点介绍了如何访问样式的符号库,以便与图层属性匹配。您可以使用多个符号属性选项来快速个性化您的场景。

最后,3D 图形工具条是创建和编辑新的 3D 图形图层和要素所需的工具集。您已学会了如何使用 ArcGlobe 中的 3D 图形工具和符号系统选项来获得更具真实感的 3D 场景。


7/10/2012