深度技术向:ArcGIS如何发布场景图层

三维能力是 ArcGIS 平台最重要的能力之一,自 ArcGIS 10.3.1 版本后三维能力已完整的贯穿整个平台。在服务器端,可以通过 CityEngine、Drone2Map、ArcGIS Pro 等创建三维模型,并将创建的三维模型作为场景图层共享至门户中。在客户端,用户可以通过多种终端访问场景图层,包括使用桌面端应用(如 Esri 提供的 ArcGIS Pro、ArcGIS Earth 以及用户基于 ArcGIS Runtime SDKs 定制的桌面端应用)、Web 端应用(如 Portal for ArcGIS内置的 Scene Viewer、基于 Web Appbuilder 或Java API 4.x 定制的 Web 端应用)和移动端应用(如基于 ArcGIS Runtime SDKs 定制的 Andriod、iOS 应用)。

  这篇文章就来介绍一下如何发布场景图层。

场景图层在存储和显示上采用了 Esri 新推出的 I3S 标准,该标准支持 Lod、地理索引、采用流模式加载,极大地提高了三维数据在桌面、Web、移动设备上的显示效率。目前 I3S 标准描述的场景图层有四种类型,分别是 3D 模型(3D Object Layer)、点(Point Layer)、集成网格(Integrated Mesh Layer)、点云(PointCloud Layer)。未来 I3S 标准有计划支持线和面类型的场景图层。

根据图层类型不同,发布过程稍有区别。

  1

  3D Object Layer

  3D Object Layer 是各种 3D 模型的集合。Esri 原生的 3D 格式是多面体(Multipatch)。多面体是一种 3D 几何,是要素类中的一种,可用来表示从简单对象(如球体和立方体)到复杂对象(如等值面和建筑物)的任何事物。

  

图1 3D Object Layer

Esri 支持将多面体图层作为场景图层共享至门户中。如果数据的几何类型不是多面体,那么首先需要使用地理处理工具将现有 3D 模型导入到 ArcGIS 中转换为多面体要素。之后就可以在 ArcGIS Pro 中将多面体图层共享为场景图层,或者先利用多面体图层创建场景图层包,然后将场景图层包共享为场景图层。

  1

  将现有 3D 模型导入到多面体要素类中

在 ArcGIS Pro 提供的工具箱中,有多种地理处理工具可将3D模型导入到多面体要素类中,譬如 3D 图层转要素类,导入 3D 文件和数据互操作扩展。这些工具适用于不同的情况:

  工具1:3D 图层转要素类

3D 图层转要素类工具可以将具有 3D 属性的要素图层导出为 3D 多面体要素。输入的要素图层可以是3D 符号的点要素类、拉伸后的线要素类和面要素类(面要素类可以是拉伸后的面要素类,也可以是不进行拉伸的面要素类。如果不进行拉伸,即面图层不具备任何 3D 显示属性,则该图层将被导出为与该面类似的多面体)。

  

图2 ArcGIS Pro 中的 3D 图层转要素类工具

下面以拉伸的面要素类为例,示范 3D 图层转要素类工具的使用。首先在 ArcGIS Pro 中添加面要素类,并将图层拖拽至 3D 图层类别中;然后在 APPEARANCE 选项卡中,根据某一属性字段对要素进行拉伸;最后利用 3D 图层转要素类工具将拉伸后的面要素类导出为多面体要素类(参见下图)。

  

图3 3D 图层转要素类示例

  工具2: 导入 3D 文件

导入 3D 文件工具支持导入主流的三维模型格式,包括:3D Studio Max (*.3ds)、SketchUp (*.skp)、VRML 和 GeoVRML (*.wrl)、OpenFlight (*.flt) 以及 COLLADA (*.dae)。

在工具的参数中,Input Files 即可以输入支持导入的模型文件,也可以是文件夹;输出位置请务必放在 File Geodatabase 里,否则没有纹理。

  

图4 ArcGIS Pro 中的导入 3D 文件工具

  工具3: 数据互操作扩展模块

数据互操作扩展模块支持通用模型 obj、X 格式模型的导入。数据互操作扩展模块是使用 Safe Software 的 FME 技术在地理处理框架中运行的集成空间 ETL(提取、转换和加载)工具集,可在不同数据模型和不同文件格式之间变换数据。该模块需要单独安装(针对 ArcMap 和 ArcGIS Pro 分别有对应的安装介质)和 Data Interoperability 许可。

安装和授权数据互操作扩展模块后就可以进行 3D 模型的导入了。在 ArcGIS Pro 中,要通过创建 Spatial ETL tool,将 3D 模型导入到多面体要素类中。在 ArcGIS Map 中,可以使用系统工具箱数据互操作工具箱里面的快速导入工具(如下图),也可以通过创建 Spatial ETL tool 进行转换。

  

图5 ArcMap工具箱中快速导入工具

  2

  共享 Web 场景图层

在获得多面体要素类之后,就可以通过 ArcGIS Pro 直接将多面体图层共享为 Web 场景图层,或者先利用多面体图层创建场景图层包,然后将场景图层包作为场景图层发布至门户中。

  方法一:直接共享场景图层

  步骤如下:

  1. 在 ArcGIS Pro 中打开 3D 场景;

  2. 在内容窗格的 3D 图层类别中选择一个或多个多面体图层。右键单击,然后单击共享为 Web 图层;

  3. 在随即显示的共享 Web 图层窗格中填写信息。

      其中,在通用选项卡中,填写 Web 图层的名称,完成摘要和标签字段,指定如何共享 Web 图层;在配置选项卡中,为场景图层关联的要素图层(在共享 Web 场景图层时,还将发布关联的 Web 要素图层)勾选要启用的操作,为场景图层勾选需要的属性字段,选中的属性字段将包含在缓存中;在内容选项卡中可以查看要创建的新 Web 图层及其所有组成部分;

  4. 单击分析来检查错误或故障。如没有错误,则单击发布,即可将多面体要素类共享 为场景图层。

      

    图6 在 ArcGIS Pro 中共享场景图层

  方法二:通过场景图层包共享场景图层

  步骤如下:

  1. 使用创建场景图层包工具创建场景图层包;

      

    图7 在 ArcGIS Pro 中创建场景图层包

  2. 将场景图层包上传到 ArcGIS Online 或 Portal for ArcGIS中;

      如果场景图层包的大小小于 1 GB,可以通过 ArcGIS Online 或 Portal for ArcGIS 进行上传。如果大于 1GB,则可通过 ArcGIS Pro 中的共享包来添加到门户内容中。

      

      a. 通过门户上传

      

      b. 在 ArcGIS Pro 中通过共享包工具上传

    图8 上传场景图层包

  3. 将场景图层包作为场景图层发布;

      如果在上一步骤中是在浏览器中通过 ArcGIS Online 或 Portal for ArcGIS 进行的,并且在上传过程勾选了“publish this file as a hosted layer”,那么这个步骤无需进行。否则需要登陆 ArcGIS Online 或 Portal for ArcGIS,打开此项目的详细页面,将其发布为场景图层。

      

    图9 在门户中发布场景图层包

  2

  Point Layer

  Point Layer 用来表示点要素类。

  

图10 Point Layer

自 Portal for ArcGIS 10.4 起,点图层和多面体图层一样,可以作为场景图层共享。操作步骤参见 1.2 节,可以直接共享 Web 场景图层(如下图所示)或者通过创建场景图层包并共享为场景图层。

  

图11 在ArcGIS Pro中共享场景图层

  3

  Integrated Mesh Layer

Integrated Mesh Layer 是用来表示带纹理的三角网格模型数据。这个图层的数据大多来自无人机,飞机,或者卫星影像重建的倾斜摄影数据。

  

图12 Integrated Mesh Layer

Integrated Mesh Layer 的创建和共享,一般要通过 Drone2Map for ArcGIS 或者第三方软件 Smart 3D(4.2及以上)完成。Drone2Map 可根据影像生成三维倾斜摄影模型、场景图层包(见下图),并支持直接发布场景图层到 ArcGIS Online 或 Portal for ArcGIS 中(Drone2Map 的使用可参考 http://zhihu.esrichina.com.cn/article/3010 或帮助文档 http://www.esri.com/products/drone2map )。Smart 3D 可根据影像生成场景图层包,之后可由 ArcGIS Pro 或者 Drone2Map 上传至 ArcGIS Online 或 Portal for ArcGIS 中,并作为场景图层发布。

  

图13 Drone2Map中三维成果输出设置

如果用户拿到的数据是倾斜摄影测量建模成果 osgb 格式的数据,那么需要利用数据互操作扩展工具将 osgb 格式的数据转换为多面体要素类,然后才可以共享为场景图层(参考1.1节和1.2节)。

  4

  PointCloud Layer

PointCloud Layer 用来表示激光雷达数据集。这个图层的数据是通过传感器或者摄影测量获得。

  

图14 PointCloud Layer

PointCloud Layer 的创建和共享,和 Integrated Mesh Layer 一样,可以通过 Drone2Map for ArcGIS 完成。如果已经获取到点云数据(文件后缀是 .las),那么通过 ArcGIS Pro 中的创建场景图层包工具,根据点云图层创生成场景图层包(如下图所示),继而将场景图层包上传至 ArcGIS Online 或 Portal for ArcGIS 中,并作为场景图层发布。

  

图15 在 ArcGIS Pro 中创建场景图层包

  以上就是要跟大家介绍的发布场景图层常用的方法,你Get到了没?本篇技术文章来自Esri中国技术支持团队的资深技术工程师发在ArcGIS知乎上的一篇技术文章, 点击阅读原文,可以观看ArcGIS知乎上的原版文章。

  ArcGIS知乎是从2015年起,Esri中国创办的大型线上技术交流论坛,不仅有大量的ArcGIS学习资料,同时还有大量Esri中国技术工程师在源源不断的供应着许许多多的高质量技术文章,热爱GIS的您一定不想错过!

http://zhihu.esrichina.com.cn/

遇到困难不要慌,ArcGIS知乎帮你忙!

微信用户还可以通过订阅ArcGIS微助手,便捷访问ArcGIS知乎平台提供的丰富技术资源。

声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
推荐阅读