如何发布场景图层

10
分享 2017-07-19
       三维能力是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或JavaScript 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.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工具箱中快速导入工具

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

      步骤如下:

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

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

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

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


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

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

       步骤如下:

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


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

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

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


                                                                      a. 通过门户上传

                                                     b. 在ArcGIS Pro中通过共享包工具上传
                                                               图8 上传场景图层包

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

       如果在上一步骤中是在浏览器中通过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中创建场景图层包

       以上就是要跟大家介绍的发布场景图层常用的方法。

6 个评论

我发布场景服务总是失败,显示无法发布web图层
太给力了。正好用到。感谢
用pro2.2 试用版 发布Multipatch到arcgis online总是报错。
第一种方法直接发布为场景图层到arcgisonline,发布前点分析检查没有任何报错,相应的要素服务可以发布成功,但是场景服务老是发布失败;
第二种方法。利用“生成3d对象场景图层包工具“生成场景图层包xxx.slpk,再上传到arcgisonline再利用slpk创建场景服务一直显示正在创建,场景服务一直显示‘’在加载‘。

这是怎么回事?是否场景服务只能发布到portal,不能发布到online?
pro2.3用第一种方法也是同样的问题,请问你解决这个问题了吗?
如果我的场景想发布到自己的服务器上可以嘛,不想共享发布
没有明白,发布和共享发布是一个意思吧?

要回复文章请先登录注册