建模 3D 城市街区
浏览地图包
首先,下载数据。 然后,在 ArcGIS Pro 中创建一个工程。
- 下载 naperville.zip 压缩文件夹。
- 在计算机上找到已下载的文件,然后将文件解压缩到便于查找的位置,例如 Documents 文件夹。
数据由内珀维尔市提供。 该文件夹包含地图包、场景图层包和文件地理数据库。
现在,您将创建一个空白 ArcGIS Pro 工程并开始导入数据。
- 启动 ArcGIS Pro。 如果收到系统提示,请使用您获得许可的 ArcGIS 组织账户登录。
注:
如果您没有 ArcGIS Pro 的访问权限或者 ArcGIS 组织账户,请参阅软件访问权限选项。
打开 ArcGIS Pro 后,您可以选择创建新工程或打开已存在的工程。 如果您之前创建了一个工程,您将看到一个最近工程列表。
- 在新建下,单击从没有模板的情况入手。
- 在插入选项卡的工程组中,单击导入地图。
- 在导入窗口中,浏览至已提取的 Naperville 文件夹并双击 Vector_Content_Naperville.mpkx。
内珀维尔市的 Vector_Content_Naperville.mpkx 全球场景随即在 ArcGIS Pro 中打开。 在内容窗格中,您将看到场景包包含 2D BuildingFootprints 图层和 2 个 3D 图层:StreetFurniture 和 BuildingShells。
- 在快速访问工具栏上单击保存按钮。
提示:
您也可以按 Ctrl+S 以保存工程。
- 在将工程另存为窗口中,浏览至已提取的数据位置,并将您的工程命名为 CityofNaperville。
拉伸 2D 建筑物覆盖区
将体积对象添加到 3D 视图中的最简单方法之一是拉伸。 此方法将使用 2D 形状并对其进行垂直推动以创建 3D 对象的外观。 简单建筑物非常适合这种方法,因为它们具有垂直墙壁,并且可以在简单的数值字段中捕获(或估计)它们的个体高度。
- 在内容窗格的 2D 图层组中,右键单击 BuildingFootprints 并选择属性表。
- 在 BuildingFootprints 属性表中,查看 Base Elevation、Building Height 和 Number of Floors 字段。
这些字段可用于设置建筑物的基础高程和建筑物要素的拉伸。
- 关闭表。
在将 3D 矢量符号系统应用于 BuildingFootprints 图层之前,您需要将该图层移动到 3D 图层组中。
- 在内容窗格中,将 BuildingFootprints 图层拖动到 3D 图层类别中。
由于每个面的折点都放置在不均匀的表面上,并且在整个表面上不均匀地计算其内部,因此该图层看起来包含碎片并且不均匀。
如果将每个建筑物覆盖区的高程设置为单个值,则其将均匀。
- 在内容窗格中,右键单击 BuildingFootprints 图层,然后选择属性。
随即出现图层属性窗口。
- 在图层属性窗口中,单击高程选项卡。 对于要素,选择在绝对高度。
- 在使用的其他要素高程下,单击 A 字段,从下拉列表中选择 Base Elevation。
- 单击确定。
建筑物覆盖区将显示均匀内部,并以其正确的基础高程进行渲染。
接下来,您需要将每个建筑物拉伸至其建筑物高度。
- 在内容窗格中,确保选择 BuildingFootprints 图层,然后在功能区上,单击要素图层选项卡。
- 在拉伸组中,单击类型,然后选择基本高度。
- 在拉伸组中,对于字段,选择 Building Height。
BuildingFootprints 图层将基于 Building Height 值进行拉伸。
注:
如果您使用的数据没有专用高度字段,则可以使用表达式(例如,“楼层数 * 3.5”)来估计建筑物高度。
- 保存工程。
向建筑物添加 3D 符号系统
拉伸有助于可视化建筑物占用的真实空间,但无法显示其他有用的信息,例如每栋建筑物的楼层数量。 这对于第一响应者和城市规划人员可能非常重要。 可以将单色显示替换为不同类型的符号(程序符号),以将附加信息整合到显示中。
程序符号是一个脚本,可以根据源要素的几何构造其他几何、颜色和纹理,然后将其作为符号应用于场景中。 了解有关程序符号系统的详细信息。
- 在内容窗格中,确保选择 BuildingFootprints 图层。 在功能区要素图层选项卡的拉伸组中,单击类型下拉箭头,然后选择无。
- 在绘制组中,单击符号系统。
- 在符号系统窗格中,单击图层的符号以对其进行修改。
- 在格式化面符号窗格的搜索栏中,键入 stack 并按 Enter 键。
- 在结果中,单击堆叠块符号以将其分配给图层。
BuildingFootprints 图层符号系统随即更新。
接下来,您将配置程序符号以连接到各个要素属性。
- 在格式化面符号窗格中,单击属性选项卡,然后单击图层选项卡。
- 对于制图表达,选择 Thin divider。 对于单位,选择 Feet。
- 对于 TotalHeight,单击设置属性映射按钮。
随即显示设置属性映射窗口。
- 在设置属性映射窗口中,选择 BuildingHeight,然后单击确定。
- 对于楼层,单击设置属性映射按钮,选择楼层数,然后单击确定。
- 在符号系统窗格的底部单击应用。
提示:
具有属性映射的符号属性将具有蓝色数据库图标。
每个建筑物都将以其定义高度进行渲染,并带有指示楼层数量的条带。 这些平顶建筑物(有时称为细节层次 (LOD) 1 建筑物)将提供支持许多 3D 映射需求的内容。
但是,并非所有建筑物都具有平坦屋顶。 要对倾斜屋顶形态进行建模,您需要从简单的拉伸形状转向更加全面的建筑物建模方式。 可以通过多种方法来创建这种类型的数据(其中一些方法将在后续课程中介绍),但是,在本练习中,将假设数据预先存在或者已由数据提供者进行编译。
注:
对于以激光雷达为中心的屋顶提取过程,系统还提供其他 Learn ArcGIS 教程,例如为城市发展提取屋顶形态和使用多面体编辑构建真实建筑物。
接下来,您将探索屋顶不平坦的建筑物。
- 在功能区的地图选项卡上,单击书签,然后单击 Pitched Roof。
该场景随即缩放至一个矩形建筑物。
- 在地图选项卡的图层组中,单击添加数据。 浏览至 Naperville 文件夹,然后双击 NapervilleLidar.slpk。
随即将激光雷达图层添加至您的场景。
目前,激光雷达点过大,由此难以查看建筑物的形状。
- 在内容窗格中,右键单击 NapervilleLidar,然后单击符号系统。
- 在符号系统窗格中,对于符号大小,键入 30 并按 Enter 键。
每个激光雷达点的大小随即减小,由此使建筑物的形状更加可见。
- 在内容窗格中,关闭 BuildingFootprints 和 NapervilleLidar 图层,然后打开 BuildingShells 图层。
BuildingFootprints 图层由基于高度属性拉伸的 2D 面组成。 BuildingShells 图层包含真实 3D 要素,这些要素是多面体要素,其 3D 属性将保留为几何的一部分,并且不需要在 3D 空间中正确进行拉伸和渲染的属性。 激光雷达点将与屋顶形状对齐;多面体图层 (LOD 2) 的建筑物更加接近真实世界。
- 保存工程。
使用程序建筑物纹理
3D 模型作为多面体要素类存储在地理数据库中。 多面体要素类与其他要素类类型(例如点和面)相同,因为它包含按要素几何和按要素属性值。 此外,它还有特定的符号化选项。
可以通过多种方式来绘制多面体的外壳。 它可能会使用影像,例如在街道上拍摄的照片,也可能会使用颜色,例如分区代码,或者可能以程序方式生成并实时添加。 多面体的外部制图表达通常称为其纹理。 本练习将使用程序纹理将纯白色建筑物转换为更加有用的对象。
- 在内容窗格中,展开 BuildingShells 图层,然后单击该符号以打开符号系统窗格。
- 在符号系统窗格中,单击库选项卡。
- 确保搜索设置为所有样式。 在搜索文本框中,键入 procedural 并按 Enter 键。
- 在结果中,单击多面体外立面。
提示:
要查看纹理的全名,请指向该纹理。
多面体将使用程序生成的纹理进行绘制,同时使用符号的默认设置。
- 在内容窗格中,对于 BuildingShells 图层,单击符号。
- 在符号系统窗格中,单击属性选项卡,然后单击图层选项卡。
- 对于单位,单击设置属性映射按钮,然后在随即出现的设置属性映射窗口中,确保将其设置为 Units,然后单击确定。
- 在符号系统窗格中,对于单位,选择 Feet。
- 对于 EaveHeight,单击设置属性映射按钮。 在随即出现的窗口中,选择 EAVEHEIGHT 字段,然后单击确定。
- 对于级别,单击设置属性映射按钮,然后在随即出现的窗口中,选择楼层数量,然后单击确定。
接下来,您将为垂直墙壁条带纹理设置参数。
- 对于 FacadeTexture,选择颜色。 对于 FacadeColor,选择灰色 30%。
提示:
要查看颜色的名称,请指向相应颜色。
- 展开选项并将 SeparatorPercentage 设置为 10%。
- 单击应用。
图层符号系统随即进行更新。
- 保存工程。
接下来,您将添加其他矢量图层以增强 3D 城市街区的外观。
添加实际尺寸街道元素
除了建筑物之外,城市中另一个常见的管理要素是街道设施,例如长椅、灯杆和公交车站。 在大多数城市环境中,这些都是居民会意识到并参考的重要位置元素。 对于本练习,您只有一小组示例要素,但无论要素数量如何,技术都将保持不变。
- 在内容窗格中,打开 StreetFurniture 图层。
- 右键单击 StreetFurniture,然后单击缩放至图层。
场景随即缩放至带有街道设施的城市部分。
- 平移并倾斜场景以相对于街道的角度查看 StreetFurniture 点。
- 放大和缩小场景并观察 StreetFurniture 符号的大小。
这些点目前设置为屏幕空间大小,这意味着符号的渲染大小将基于屏幕上的像素。 它们对于定位点非常有效,因为可确保以所有查看距离都能看到这些点。 但是,它们对于表示真实对象并没有帮助。
实际尺寸符号将使用一致的体积大小进行渲染。 这将与世界的实际互动保持一致,其中距离越远的对象看起来越小。
接下来,您需要将 StreetFurniture 的符号系统更新为实际尺寸。
- 在内容窗格中,右键单击 StreetFurniture 图层并单击属性。
- 在图层属性窗口中,单击显示选项卡,然后选中以实际单位显示 3D 符号复选框。
- 单击确定。
- 放大和缩小场景并观察 StreetFurniture 符号的大小。
接下来,您需要将图钉替换为具有代表性的 3D 模型。
您在本练习中使用的 StreetFurniture 数据包含用于标识灯杆和公园长椅的唯一值。 您将使用数据中的这些唯一值以创建两个类。 然后,可以将不同的 3D 模型符号应用于每个类。 对于您自己的数据,您可以根据需要使用任意数量的类。
- 在内容窗格中,确保选择 StreetFurniture 图层。 在功能区上,单击要素图层选项卡。
- 在绘制组中,单击符号系统下拉箭头,并选择唯一值。
- 在符号系统窗格中,对于字段 1,确认选择 TYPE。
- 在类选项卡中,单击添加所有值按钮。
- 单击更多并取消选中显示其他所有值。
接下来,您将修改每种类型的街道元素。
- 单击 Light 的符号。
- 单击图库选项卡并在所有样式中搜索 light。
- 在结果的 3D 街道场景部分中,选择悬臂式街道 - 光照关闭符号。
该场景随即进行更新,并且光照现在显示为悬臂式街道光照符号。
- 在符号系统窗格的顶部,单击后退箭头,然后在类选项卡中,单击公园长椅的符号。
- 在所有样式中搜索 bench 并选择公园长椅 2 符号。
现在将以真实大小的模型显示这些点,但它们相对于街道的方向是错误的。
接下来,您将为符号设置属性驱动的旋转。
- 在符号系统窗格的顶部,单击后退箭头。 单击按属性改变符号系统选项卡,然后展开旋转。
- 对于方向 (Z),选择 ROTATION。 对于旋转样式,选择地理。
随即对光照符号进行旋转以悬挂在街道上方,并且街道长椅现在彼此相对。
- 保存工程。
针对此数据预先计算了旋转值。 对于您自己的内容,您可以手动输入一些要素的值;对于附近街道的许多要素,您也可以使用地理处理工具。
添加专题树
大多数城市的另一个主要元素是植被和行道树。 针对树木点要素,可以使用与街道设施相同的技术,即,创建一组唯一类并定义符号。
- 在地图选项卡中,单击添加数据,浏览至已下载的 Naperville 文件夹,浏览文件夹 NapervilleAdditionalData.gdb 和 DS,然后双击 TreePoints。
TreePoints 图层即已添加至内容窗格。
- 单击 TreePoints 对应的符号,在图库中搜索树木,然后在 3D 植被 - 专题下,选择椴属。
树木已添加至地图,但是是平放在地图上。 您需要添加树木高度作为其正确的高度。
- 在“内容”窗格中,右键单击 TreePoints 图层,然后打开属性。
- 在图层属性中,单击高程选项卡,然后设置以下内容:
- 对于要素,选择在绝对高度。
- 对于字段,选择高度。
对于每种树木,已将高程设置为高度字段。
- 单击确定。
- 如有必要,请进行缩小以更好地查看已添加的 TreePoints 图层。
将自动应用预设图层的所有符号系统更改,并将 TreePoints 图层添加至场景,在该图层中,为每个要素定义了适用的高度。
创建有用的书签
虽然城市场景看起来不错,但是可能难以到达特定位置,特别是如果您不熟悉内珀维尔的地理环境更是如此。 书签将存储场景中的重要视点,可以帮助用户快速缩放至场景中的关键位置。
- 在地图功能区选项卡的导航组中,单击书签,然后单击管理书签。
书签窗格随即出现。
- 在该场景中,导航至显示街道设施要素的地面视图的视图。
- 在书签窗格中,单击新建书签。
- 在创建书签窗口中,对于名称,键入 Street Furniture,然后单击确定。
在本教程的前面部分中,您使用了书签以缩放至倾斜屋顶示例。 由于场景不再需要此书签,因此您需要将其删除。
- 在书签窗格中,将鼠标悬停在 Pitched Roof 上,然后单击移除按钮。
一些城市具有著名的地标或感兴趣点。 为这些位置创建书签将非常有用,以便用户快速转至这些位置。 您将为当地高中创建一个附加书签。
- 在地图选项卡的查询组中,单击查找。
- 在定位窗格的搜索文本框中,键入 Naperville Central High 并按 Enter 键。
搜索将定位该高中并缩放视图,使其在屏幕上居中显示。
- 导航至学校附近,然后将地图平移或倾斜到要添加书签的场景视图。
提示:
可以通过单击鼠标右键并在场景中拖动来进行缩放。
- 在书签窗格中,单击新建书签。 在创建书签窗口中,对于名称,键入 Naperville HS,然后单击确定。
现在,您拥有 3 个书签,您的受众在导航 3D 场景时即可访问这些书签。
注:
您可以根据需要添加任意数量的其他书签。 如果您将此场景共享至 web,则会自动将书签作为幻灯片包含在在线场景查看器中。
- 保存工程并关闭 ArcGIS Pro。
许多场景都会侧重于对真实大小和形状的世界制图表达进行建模,以用于视觉影响、施工规划和环境影响研究等工作流。 这些场景通常会使用与各个要素属性相关联的实际尺寸符号,尤其是对于旋转、宽度和高度等属性更是如此。
虽然仍鼓励使用专题元素,但主要是通过不影响要素体积形状的颜色和纹理。 在本教程中,您在建筑物上使用了程序纹理来区分屋顶和墙壁以及指示楼层数量。 您还考虑了用户如何通过包含书签来显示关键视点,从而与场景进行交互。
您可以在教程库中找到更多教程。