现在三维应用越来越广泛,我们也要与时俱进广泛应用三维场景,创建三维GIS应用。三维GIS应用可以提升视觉上的感官体验,也可以进行二维无法实现的各类分析。

三维分析包括:数字地形模型分析(即高程,等高线、坡度坡向等读取分析),可视性分析(包括通视分析、视点分析、视域分析、视线分析、天际线分析、日照分析)、淹没分析、节点动画、挖方分析、三维路径分析、飞行路线危险性分析、危险物扩散分析、三维测量等。

一、处理前注意事项

1、arcgis pro支持三维数据的发布必须使用portal连接server才能发布三维服务;

2、 ArcMap和ArcGIS Pro 1.X版本不能直接打开OSGB的数据,需要使用数据互操作模块将OSGB转换为multipatch,之后发布服务。目前已知ArcGIS Pro 2.2版本,GP工具箱找到Create Integrated Mesh Scene Layer,可以直接将OSGB转为SLPK。

3、明确OSGB的坐标,否则转换后会出现模型偏移等问题。模型坐标存储在medata.xml中(在将OSGB转换为multipatch的时候,需要定义投影坐标系)。

二、osbg转换方法一:

arcgis pro2.2版本直接转

此方法暂未实践,来源:https://zhuanlan.zhihu.com/p/43410474

1、在ESRI网站申请Arcgis pro2.2,选择英文语言有最新安装包,其他语言包会滞后。还需要相应的数据转换工具Data Interoperability。(注意:尽量使用英文版,目前经测试中文语言包在使用时部分操作会有错误)

2.新建工程,熟悉相关界面。

3.在GP工具箱找到Create Integrated Mesh Scene Layer。可以直接将OSGB转为SLPK。

4.打开输入数据集,Input Dataset.

 

5.点击任意根目录文件,ctrol+A全选,这些tile可以合成一个slpk文件。

6.File Suffix 选择数据格式,osgb或者所有支持的格式。output scene layer保存slpk文件路径。anchor停靠点可以导入点文件,或绘制点(点击)。

7.Go To XY,输入经纬度,显示高亮点,放大地图。停靠点点在osgb数据头文件meradata.xml的坐标原点处。如果需要平面投影坐标转经纬度,可用下面工具完成。平面点位输入还未测试,按理也可以。

8.将停靠点文件保留一份,如果下次或同一个工程很大分成了若干文件夹。最好使用同一份点位停靠。不然每次点停靠点的话肯定会有误差。

9.设置完毕,点击下方run命令,等待工程运行。(目前测试大数据使用版本pro会崩,如果是正式用户需联系ESRI解决)。

10.根据项目数据情况,在catalog目录下可建Global球面场景或本地local场景,一般根据数据集格式。pro可能实现平面和球面的自转换。

11.将生成的slpk文件拖到场景,在3D图层pan缩放其位置就可显示模型了。

三、osgb转换方法二:

将OSGB数据转换为multipatch

不方便截图,图片参考来源:https://blog.csdn.net/zglybl/article/details/75252288

1、准备工作

注意:此方法需要Installing the ArcGIS Data Interoperability 扩展模块扩展模块,需单独购买,单独安装,使用时勾选扩展模块,无试用版本。

(1)、ArcGIS Pro中如何获取和使用

确认是否购买此模块:如果是name user登录形式,需要登录ArcGIS online中查看和分配扩展模块许可;如果是浮动版或单机版的pro许可,用记事本打开浮动版.prvs或单击版.prvc授权文件,看最后一行是否有Data Interoperability=EFL123456789=1,如果有的话,就表示购买此模块。

详情请参考:安装Installing the ArcGIS Data Interoperability 扩展模块—ArcGISPro | ArcGIS Desktop:  https://pro.arcgis.com/zh-cn/pro-app/help/data/data-interoperability/install-the-data-interoperability-extension.htm

安装应用程序,找到如下截图所示的exe,双击即可完成安装:

找到licensing,在Data Interoperability扩展模块前打勾即可开启。

之后,打开ArcGIS Pro 即可在ANALYSIS下找到Workbench,说明你已成功启动数据互操作。

(2)、ArcMap中如何获取和使用

 针对购买的正版软件:请检查您是否购买数据互操作模块(用记事本打开浮动版.prvs或单击版.prvc授权文件,看最后一行是否有Data Interoperability=EFL123456789=1,如果有的话,就表示购买此模块),         

详情请参考:

安装 Data Interoperability—帮助 | ArcGIS Desktop:点击打开链接

 安装Data interoperability应用程序,找到光盘,双击ArcGIS_Data_Interop_for_Desktop_105_154035.exe即可安装。

安装完成后,打开ArcMap,点击Customize下的Extensions,勾选Data interoperability即可开启此模块的使用。

2、将OSGB数据转换为multipatch

(1)在ArcGIS Pro中,使用FME workbench 创建 Spatial ETL tool进行转换,流程如下:

①  右键单击工程窗格中的工具箱,指向新建,然后单击spatial ETL tool。将出现工具属性对话框

②定义合适的名称和标签,并在工作空间参数中使用默认 FMW 文件,然后单击确定。

③  将启动 Workbench 应用程序,点击File下的Generate Workspace,出现如下对话框。

Reader中,在下拉列表中选择OSGB格式,单击浏览按钮 (...),浏览至osgb所在文件。

单击参数按钮以编辑默认的 FME 阅读器参数。这些参数可包括可选设置和必要设置,并随所选格式的不同而变化。

Writer中,在下拉列表中选择gdb格式,单击浏览按钮 (...),指定gdb所在文件。

④ 点击确定后,需要转换的数据流依次出现在如下界面中,点击绿色按钮run,即可开始转换。

转换结果:

(2)在ArcMap中进行转换:

ArcMap中可以使用以下两种方法进行转换,

①、使用快速转换工具进行转换

开启数据互操作模块后,在工具箱中找到Data interoperability tools,里边有两个工具,分别是quick export和quick import。使用quick import即可将OSGB数据转换到指定的gdb中。

tips:一个小技巧

OSGB格式的数据通常有多个tile文件组成,每个tile下有好多个.osgb;通过下图中的add folders可将tile文件夹下的所有osgb进行转换,无需单个输入。

 

②、使用空间ETL工具进行转换(在arcgis pro中进行)

3、合并为一个multipatch

在ArcGIS Pro中,使用工具merge(Data Management toolbox --General ),或ArcScene中3D编辑工具条下的union,将osgb中最高级别进行合并(OSGB数据类似于金字塔结构,最高级别模型最精细),合并为一个multipatch。

4、移动至实际位置并贴合

(1)在ArcGIS Pro中,选中模型,使用move to工具将模型移动到模型中心实际所在位置(从metadata.xml中获取,注意选择absolute)。

 

 

转移后,坐标范围没有更新,需要使用工具Recalculate Feature ClassExtent工具重新计算。

计算完后,加载模型,模型已处于正确的地理位置,但你会发现,此时模型是悬浮在空中。

(2)可以使用move工具,移动z值将其调整至地面,或者右键图层选择on the ground,下图为模型和底图完全贴合。

四、发布服务

方法一、直接发布(适合小数据量)

1、直接将多面体加载到场景中,右键场景图层,点击share as web layer,然后根据参考文档进行操作即可发布场景服务。

参考链接:https://pro.arcgis.com/zh-cn/pro-app/help/sharing/overview/share-a-web-scene.htm

2、在portal中添加发布的场景

方法一、打包发布(适合大数据量)

1、使用“创建场景图层包”工具,将多面体要素图层生成场景图层包 (.slpk);工具位置:数据管理工具箱 -> 打包工具集->创建场景图层包

参考链接:https://pro.arcgis.com/zh-cn/pro-app/tool-reference/data-management/create-scene-layer-package.htm

2、如果输出场景包小于 1 GB,则可在浏览器中直接将其上传至 ArcGIS Online 或 Portal for ArcGIS。如果大于 1 GB,请使用“共享包”工具将其上传至 ArcGIS Online 或 Portal for ArcGIS 10.3.1 或更高版本。工具位置:数据管理工具箱 -> 打包工具集 ->共享包

3)上传场景图层包后打开项目详细页面,将其发布为服务。

关于发布场景图层参考:http://zhihu.esrichina.com.cn/article/3173