建模 3D 城市街区

浏览地图包

首先,下载数据。 然后,在 ArcGIS Pro 中创建一个工程。

  1. 下载 naperville.zip 压缩文件夹。
  2. 在计算机上找到已下载的文件,然后将文件解压缩到便于查找的位置,例如 Documents 文件夹。

    数据由内珀维尔市提供。 该文件夹包含地图包、场景图层包和文件地理数据库。

    现在,您将创建一个空白 ArcGIS Pro 工程并开始导入数据。

  3. 启动 ArcGIS Pro。 如果收到系统提示,请使用您获得许可的 ArcGIS 组织帐户登录。
    注:

    如果您没有 ArcGIS Pro 的访问权限或者 ArcGIS 组织帐户,请参阅软件访问权限选项

    打开 ArcGIS Pro 后,您可以选择创建新工程或打开已存在的工程。 如果您之前创建了一个工程,您将看到一个最近工程列表。

  4. 新建下,单击从没有模板的情况入手

    从没有模板的情况入手

  5. 插入选项卡的工程组中,单击导入地图

    导入地图

  6. 导入窗口中,浏览至已提取的 Naperville 文件夹并双击 Vector_Content_Naperville.mpkx

    内珀维尔市的 Vector_Content_Naperville.mpkx 全球场景随即在 ArcGIS Pro 中打开。 在内容窗格中,您将看到场景包包含 2D BuildingFootprints 图层和 2 个 3D 图层:StreetFurnitureBuildingShells

    “内容”窗格

  7. 快速访问工具栏上单击保存按钮。

    “快速访问工具栏”上的“保存”

    提示:

    您也可以按 Ctrl+S 以保存工程。

  8. 将工程另存为窗口中,浏览至已提取的数据位置,并将您的工程命名为 CityofNaperville

拉伸 2D 建筑物覆盖区

将体积对象添加到 3D 视图中的最简单方法之一是拉伸。 此方法将使用 2D 形状并对其进行垂直推动以创建 3D 对象的外观。 简单建筑物非常适合这种方法,因为它们具有垂直墙壁,并且可以在简单的数值字段中捕获(或估计)它们的个体高度。

  1. 内容窗格的 2D 图层组中,右键单击 BuildingFootprints 并选择属性表

    打开 BuildingFootprint 图层属性表。

  2. BuildingFootprints 属性表中,查看 Base ElevationBuilding HeightNumber of Floors 字段。

    BuildingFootprints 属性表突出显示了 Base Elevation、Building Height 和 Number of Floors 字段

    这些字段可用于设置建筑物的基础高程和建筑物要素的拉伸。

  3. 关闭表。

    在将 3D 矢量符号系统应用于 BuildingFootprints 图层之前,您需要将该图层移动到 3D 图层组中。

  4. 内容窗格中,将 BuildingFootprints 图层拖动到 3D 图层类别中。

    将 BuildingFootprints 拖动到“3D 图层”组中。

    由于每个面的折点都放置在不均匀的表面上,并且在整个表面上不均匀地计算其内部,因此该图层看起来包含碎片并且不均匀。

    图像显示的内珀维尔表面不均匀

    如果将每个建筑物覆盖区的高程设置为单个值,则其将均匀。

  5. 内容窗格中,右键单击 BuildingFootprints 图层,然后选择属性

    随即出现图层属性窗口。

  6. 图层属性窗口中,单击高程选项卡。 对于要素,选择在绝对高度

    图表显示了已选择“在绝对高度”

  7. 使用的其他要素高程下,单击 A 字段,从下拉列表中选择 Base Elevation

    在“图层属性:BuildingFootprints”窗口中选择“高程”选项卡

  8. 单击确定

    建筑物覆盖区将显示均匀内部,并以其正确的基础高程进行渲染。

    查看更新场景

    接下来,您需要将每个建筑物拉伸至其建筑物高度。

  9. 内容窗格中,确保选择 BuildingFootprints 图层,然后在功能区上,单击要素图层选项卡。
  10. 拉伸组中,单击类型,然后选择基本高度

    “基本高度”类型

  11. 拉伸组中,对于字段,选择 Building Height

    选择 Building Height 字段。

    BuildingFootprints 图层将基于 Building Height 值进行拉伸。

    建筑物图层显示了 3D 建筑物形状

    注:

    如果您使用的数据没有专用高度字段,则可以使用表达式(例如,“楼层数 * 3.5”)来估计建筑物高度。

  12. 保存工程。

向建筑物添加 3D 符号系统

拉伸有助于可视化建筑物占用的真实空间,但无法显示其他有用的信息,例如每栋建筑物的楼层数量。 这对于第一响应者和城市规划人员可能非常重要。 可以将单色显示替换为不同类型的符号(程序符号),以将附加信息整合到显示中。

程序符号是一个脚本,可以根据源要素的几何构造其他几何、颜色和纹理,然后将其作为符号应用于场景中。 了解有关程序符号系统的详细信息。

  1. 内容窗格中,确保选择 BuildingFootprints 图层。 在功能区要素图层选项卡的拉伸组中,单击类型下拉箭头,然后选择
  2. 绘制组中,单击符号系统
  3. 符号系统窗格中,单击图层的符号以对其进行修改。

    符号系统 - 在 BuildingFootprints 窗格中选择“符号”

  4. 格式化面符号窗格的搜索栏中,键入 stack 并按 Enter 键。

    格式化面符号系统。

  5. 在结果中,单击堆叠块符号以将其分配给图层。

    BuildingFootprints 图层符号系统随即更新。

    3D 建筑物显示为堆叠的面块

    接下来,您将配置程序符号以连接到各个要素属性。

  6. 格式化面符号窗格中,单击属性选项卡,然后单击图层选项卡。

    修改面符号属性。

  7. 对于制图表达,选择 Thin divider。 对于单位,选择 Feet

    在下拉菜单中选择 Thin divider

  8. 对于 TotalHeight,单击设置属性映射按钮。

    TotalHeight 的“设置属性映射”按钮

    随即显示设置属性映射窗口。

  9. 设置属性映射窗口中,选择 BuildingHeight,然后单击确定

    使用属性字段值更新 TotalHeight。

  10. 对于楼层,单击设置属性映射按钮,选择楼层数,然后单击确定
  11. 符号系统窗格的底部单击应用
    提示:

    具有属性映射的符号属性将具有蓝色数据库图标。

    每个建筑物都将以其定义高度进行渲染,并带有指示楼层数量的条带。 这些平顶建筑物(有时称为细节层次 (LOD) 1 建筑物)将提供支持许多 3D 映射需求的内容。

    已更新场景

    但是,并非所有建筑物都具有平坦屋顶。 要对倾斜屋顶形态进行建模,您需要从简单的拉伸形状转向更加全面的建筑物建模方式。 可以通过多种方法来创建这种类型的数据(其中一些方法将在后续课程中介绍),但是,在本练习中,将假设数据预先存在或者已由数据提供者进行编译。

    注:

    对于以激光雷达为中心的屋顶提取过程,系统还提供其他 Learn ArcGIS 教程,例如为城市发展提取屋顶形态使用多面体编辑构建真实建筑物

    接下来,您将探索屋顶不平坦的建筑物。

  12. 在功能区的地图选项卡上,单击书签,然后单击 Pitched Roof

    选择 Pitched Roof 书签。

    该场景随即缩放至一个矩形建筑物。

    3D 矩形建筑物

  13. 地图选项卡的图层组中,单击添加数据。 浏览至 Naperville 文件夹,然后双击 NapervilleLidar.slpk

    随即将激光雷达图层添加至您的场景。

    使用树木进行美化的建筑物的 3D 图像

    目前,激光雷达点过大,由此难以查看建筑物的形状。

  14. 内容窗格中,右键单击 NapervilleLidar,然后单击符号系统
  15. 符号系统窗格中,对于符号大小,键入 30 并按 Enter 键。

    更改图层上的符号大小。

    每个激光雷达点的大小随即减小,由此使建筑物的形状更加可见。

  16. 内容窗格中,关闭 BuildingFootprintsNapervilleLidar 图层,然后打开 BuildingShells 图层。

    场景中已更新的符号系统

    BuildingFootprints 图层由基于高度属性拉伸的 2D 面组成。 BuildingShells 图层包含真实 3D 要素,这些要素是多面体要素,其 3D 属性将保留为几何的一部分,并且不需要在 3D 空间中正确进行拉伸和渲染的属性。 激光雷达点将与屋顶形状对齐;多面体图层 (LOD 2) 的建筑物更加接近真实世界。

  17. 保存工程。

使用程序建筑物纹理

3D 模型作为多面体要素类存储在地理数据库中。 多面体要素类与其他要素类类型(例如点和面)相同,因为它包含按要素几何和按要素属性值。 此外,它还有特定的符号化选项。

可以通过多种方式来绘制多面体的外壳。 它可能会使用影像,例如在街道上拍摄的照片,也可能会使用颜色,例如分区代码,或者可能以程序方式生成并实时添加。 多面体的外部制图表达通常称为其纹理。 本练习将使用程序纹理将纯白色建筑物转换为更加有用的对象。

  1. 内容窗格中,展开 BuildingShells 图层,然后单击该符号以打开符号系统窗格。

    BuildingShells 图层的符号

  2. 符号系统窗格中,单击选项卡。
  3. 确保搜索设置为所有样式。 在搜索文本框中,键入 procedural 并按 Enter 键。

    在“图库”窗格中搜索程序样式

  4. 在结果中,单击多面体外立面

    “多面体外立面”符号

    提示:

    要查看纹理的全名,请指向该纹理。

    多面体将使用程序生成的纹理进行绘制,同时使用符号的默认设置。

    已更新场景

  5. 内容窗格中,对于 BuildingShells 图层,单击符号。
  6. 符号系统窗格中,单击属性选项卡,然后单击图层选项卡。
  7. 对于单位,单击设置属性映射按钮,然后在随即出现的设置属性映射窗口中,确保将其设置为 Units,然后单击确定

    使用属性字段更改符号单位。

  8. 符号系统窗格中,对于单位,选择 Feet
  9. 对于 EaveHeight,单击设置属性映射按钮。 在随即出现的窗口中,选择 EAVEHEIGHT 字段,然后单击确定
  10. 对于级别,单击设置属性映射按钮,然后在随即出现的窗口中,选择楼层数量,然后单击确定

    接下来,您将为垂直墙壁条带纹理设置参数。

  11. 对于 FacadeTexture,选择颜色。 对于 FacadeColor,选择灰色 30%
    提示:

    要查看颜色的名称,请指向相应颜色。

    FacadeTexture 和 FacadeColor 参数

  12. 展开选项并将 SeparatorPercentage 设置为 10%

    在“选项”窗格中,针对 SeparatorPercentage,选择 10%

  13. 单击应用

    图层符号系统随即进行更新。

    3D 建筑物

  14. 保存工程。

接下来,您将添加其他矢量图层以增强 3D 城市街区的外观。

添加实际尺寸街道元素

除了建筑物之外,城市中另一个常见的管理要素是街道设施,例如长椅、灯杆和公交车站。 在大多数城市环境中,这些都是居民会意识到并参考的重要位置元素。 对于本练习,您只有一小组示例要素,但无论要素数量如何,技术都将保持不变。

  1. 内容窗格中,打开 StreetFurniture 图层。
  2. 右键单击 StreetFurniture,然后单击缩放至图层

    场景随即缩放至带有街道设施的城市部分。

  3. 平移并倾斜场景以相对于街道的角度查看 StreetFurniture 点。

    添加场景街道设施

  4. 放大和缩小场景并观察 StreetFurniture 符号的大小。

    缩小带有街道设施的场景图像

    这些点目前设置为屏幕空间大小,这意味着符号的渲染大小将基于屏幕上的像素。 它们对于定位点非常有效,因为可确保以所有查看距离都能看到这些点。 但是,它们对于表示真实对象并没有帮助。

    实际尺寸符号将使用一致的体积大小进行渲染。 这将与世界的实际互动保持一致,其中距离越远的对象看起来越小。

    接下来,您需要将 StreetFurniture 的符号系统更新为实际尺寸。

  5. 内容窗格中,右键单击 StreetFurniture 图层并单击属性
  6. 图层属性窗口中,单击显示选项卡,然后选中以实际单位显示 3D 符号复选框。

    “图层属性”窗口“显示”选项卡

  7. 单击确定
  8. 放大和缩小场景并观察 StreetFurniture 符号的大小。

    放大表示街道设施的图钉视图

    接下来,您需要将图钉替换为具有代表性的 3D 模型。

    您在本练习中使用的 StreetFurniture 数据包含用于标识灯杆和公园长椅的唯一值。 您将使用数据中的这些唯一值以创建两个类。 然后,可以将不同的 3D 模型符号应用于每个类。 对于您自己的数据,您可以根据需要使用任意数量的类。

  9. 内容窗格中,确保选择 StreetFurniture 图层。 在功能区上,单击要素图层选项卡。
  10. 绘制组中,单击符号系统下拉箭头,并选择唯一值

    “符号系统”下拉列表显示了所选“唯一值”

  11. 符号系统窗格中,对于字段 1,确认选择 TYPE

    在“符号系统 - StreetFurniture”中,“唯一值”“字段 1”显示了 TYPE

  12. 选项卡中,单击添加所有值按钮。

    更新符号系统类。

  13. 单击更多并取消选中显示其他所有值

    选择“显示其他所有值”

    接下来,您将修改每种类型的街道元素。

  14. 单击 Light 的符号。

    在“符号系统”窗格中选择 Light 作为修改

  15. 单击图库选项卡并在所有样式中搜索 light

    搜索图库中的符号。

  16. 在结果的 3D 街道场景部分中,选择悬臂式街道 - 光照关闭符号。

    在“3D 街道场景”中选择“悬臂式街道”符号

    该场景随即进行更新,并且光照现在显示为悬臂式街道光照符号。

    查看场景中已更新的符号系统。

  17. 符号系统窗格的顶部,单击后退箭头,然后在选项卡中,单击公园长椅的符号。
  18. 所有样式中搜索 bench 并选择公园长椅 2 符号。

    在符号系统窗格中搜索长椅符号。

    现在将以真实大小的模型显示这些点,但它们相对于街道的方向是错误的。

    公园长椅面向错误方向的 3D 图像

    接下来,您将为符号设置属性驱动的旋转。

  19. 符号系统窗格的顶部,单击后退箭头。 单击按属性改变符号系统选项卡,然后展开旋转

    “按属性变更符号系统”选项卡上的“旋转”部分

  20. 对于方向 (Z),选择 ROTATION。 对于旋转样式,选择地理

    “旋转”配置

    随即对光照符号进行旋转以悬挂在街道上方,并且街道长椅现在彼此相对。

    街道长椅彼此相对

  21. 保存工程。

针对此数据预先计算了旋转值。 对于您自己的内容,您可以手动输入一些要素的值;对于附近街道的许多要素,您也可以使用地理处理工具。

添加专题树

大多数城市的另一个主要元素是植被和行道树。 针对树木点要素,可以使用与街道设施相同的技术,即,创建一组唯一类并定义符号。

  1. 地图选项卡中,单击添加数据,浏览至已下载的 Naperville 文件夹,浏览文件夹 NapervilleAdditionalData.gdbDS,然后双击 TreePoints

    在“添加数据”窗口中选择 TreePoints

    TreePoints 图层即已添加至内容窗格。

  2. 单击 TreePoints 对应的符号,在图库中搜索树木,然后在 3D 植被 - 专题下,选择椴属

    添加椴属树木符号。

    树木已添加至地图,但是是平放在地图上。 您需要添加树木高度作为其正确的高度。

  3. 在“内容”窗格中,右键单击 TreePoints 图层,然后打开属性
  4. 图层属性中,单击高程选项卡,然后设置以下内容:
    • 对于要素,选择在绝对高度
    • 对于字段,选择高度

    设置树木的高度

    对于每种树木,已将高程设置为高度字段。

  5. 单击确定
  6. 如有必要,请进行缩小以更好地查看已添加的 TreePoints 图层。

    将自动应用预设图层的所有符号系统更改,并将 TreePoints 图层添加至场景,在该图层中,为每个要素定义了适用的高度。

    以 3D 形式显示的行道树要素

创建有用的书签

虽然城市场景看起来不错,但是可能难以到达特定位置,特别是如果您不熟悉内珀维尔的地理环境更是如此。 书签将存储场景中的重要视点,可以帮助用户快速缩放至场景中的关键位置。

  1. 地图功能区选项卡的导航组中,单击书签,然后单击管理书签

    管理书签

    书签窗格随即出现。

  2. 在该场景中,导航至显示街道设施要素的地面视图的视图。

    场景的地面视图

  3. 书签窗格中,单击新建书签

    在“书签”窗格中选择“新建书签”

  4. 创建书签窗口中,对于名称,键入 Street Furniture,然后单击确定

    创建书签窗口

    在本教程的前面部分中,您使用了书签以缩放至倾斜屋顶示例。 由于场景不再需要此书签,因此您需要将其删除。

  5. 书签窗格中,将鼠标悬停在 Pitched Roof 上,然后单击移除按钮。

    在“书签”窗格中选择“移除”按钮

    一些城市具有著名的地标或感兴趣点。 为这些位置创建书签将非常有用,以便用户快速转至这些位置。 您将为当地高中创建一个附加书签。

  6. 地图选项卡的查询组中,单击查找

    定位

  7. 定位窗格的搜索文本框中,键入 Naperville Central High 并按 Enter 键。

    在“定位”窗格的搜索框中键入 Naperville Central High

    搜索将定位该高中并缩放视图,使其在屏幕上居中显示。

    使用“定位”工具的搜索结果

  8. 导航至学校附近,然后将地图平移或倾斜到要添加书签的场景视图。
    提示:

    可以通过单击鼠标右键并在场景中拖动来进行缩放。

    要创建书签的 Naperville High School 较近视图

  9. 书签窗格中,单击新建书签。 在创建书签窗口中,对于名称,键入 Naperville HS,然后单击确定

    现在,您拥有 3 个书签,您的受众在导航 3D 场景时即可访问这些书签。

    注:

    您可以根据需要添加任意数量的其他书签。 如果您将此场景共享至 web,则会自动将书签作为幻灯片包含在在线场景查看器中。

  10. 保存工程并关闭 ArcGIS Pro

许多场景都会侧重于对真实大小和形状的世界制图表达进行建模,以用于视觉影响、施工规划和环境影响研究等工作流。 这些场景通常会使用与各个要素属性相关联的实际尺寸符号,尤其是对于旋转、宽度和高度等属性更是如此。

虽然仍鼓励使用专题元素,但主要是通过不影响要素体积形状的颜色和纹理。 在本教程中,您在建筑物上使用了程序纹理来区分屋顶和墙壁以及指示楼层数量。 您还考虑了用户如何通过包含书签来显示关键视点,从而与场景进行交互。

您可以在教程库中找到更多教程。