三维数据入到arcgis平台的解决方案

目录

1、传统建模数据

①obj、dae、3ds等模型纹理颜色或者贴图不显示

②加载wrl数据贴图丢失

③将obj模型导入到arcgispro出现异常情况

④zoom to layer选项失效导致三维数据不显示

⑤multipatch转slpk模型贴图有细缝

⑥skp数据无法导入到arcgispro

⑦拆分三维模型

⑧使用arcgispro将multipatch转slpk软件崩溃

2、倾斜摄影

①模型有白块

②压平工具

③osgb存放路径有特殊中文字符,报错error 999999

④Osgb转为slpk,停靠点和转完的slpk之间有偏移?

⑤osgb转slpk软件崩溃

⑥arcgispro支持单体化吗?

⑦3d tile转slpk

⑧osgb转slpk工具

3、BIM

①BIM数据如何入到arcgis平台,移动到真实的位置,并且发布成三维场景服务,以及前端调用

②revit数据加载到arcgispro纹理贴图不显示

③arcgis对pdms的支持情况

4、点云


本篇博客记录如何使用arcgispro将各种类型的三维数据(传统建模(3ds、obj、dae、skp、wrl等)、倾斜摄影、bim、点云)导入到arcgis平台中,方便后期发布场景服务和应用开发调用。

1、传统建模数据

①obj、dae、3ds等模型纹理颜色或者贴图不显示

使用import 3d file将数据导入到arcgispro,模型是白模。

回答:

  • dae等数据使用import 3d files生成multipatch,生成的multipatch必须得存储在gdb中,因为存放在shp中纹理会丢失;

  • 如果是贴图不显示的话,请使用相对路径;模型贴图不要有中文字符,

  • 贴图格式。纹理贴图不显示,多半是由于透明纹理,而且采用的格式是tga格式;如果有透明纹理,建议使用png格式,而不用tga格式,multipatch不支持tga,但是tga格式在3dmax中用的较多;可以将tga转为png格式。另外,贴图的分辨率二倍关系

  • 可以在导入到arcgispro之前,使用3dmax加载这个模型,例如:obj模型,查看模型的颜色是否有,如果没有的话,请确保模型的颜色在3dmax中是没有问题的,然后再导入到arcgispro。如果obj模型在3dmax中模型纹理颜色都在,那就先用下述工具进行处理,再导入到arcgispro中。工具:链接:https://pan.baidu.com/s/1QW2QHUYIc5xhfH31ROv9Dg  提取码:183t

②加载wrl数据贴图丢失

wrl文件结构如下:

三维数据入到arcgis平台的解决方案_第1张图片

回答:

图示中纹理的存放位置../是上一级目录的意思,应该把纹理图片存放在上一级maps的目录,把wrl文件存放在其它名称的文件夹里,例如:下图中的wrl文件夹。

三维数据入到arcgis平台的解决方案_第2张图片

然后再使用import 3d files将其导入到arcgispro。

③将obj模型导入到arcgispro出现异常情况

问题:

ArcGISPro的import 3d files加载obj,转完后纹理没有丢失,但是数据不显示,缩放至图层和属性表定位都不显示,使用“edit”——“Verticles”能够显示,但是又很快消失;

使用Pro的数据互操作模块,数据转完后纹理没有丢失,但是顶部变侧面;

使用arcscene加载Pro的import 3d files转完后的multipatch数据,数据呈线条状。

解决办法:

在3dmax中将obj转为dae,同时将dae和纹理放在同一存放路径下解决问题,然后使用Pro的import 3d files工具转换后,纹理没有丢失,顶部也没有变侧面,模型正常显示。

④zoom to layer选项失效导致三维数据不显示

将三维数据通过import 3d files工具转为multipatch,转完的数据通过zoom to layer选项不能显示在场景视图,只有通过点击属性表中的要素记录才能够显示模型

回答:

这是由extent偏大导致的,通过“recalculate feature class extent”工具重新计算multipatch的范围即可。如果使用arcgispro2.5的这个工具,范围还是没变化,可以使用arcmap中的这个工具。

⑤multipatch转slpk模型贴图有细缝

使用pro2.3/2.4/2.5.0-beta.1中的工具将multipatch转slpk模型贴图有细缝,贴图格式为png或者jpg

三维数据入到arcgis平台的解决方案_第3张图片

原因:

multipatch是gdb中的数据集,slpk是i3s标准下的数据集,slpk存和取贴图的方式和multipatch不同。

解决方法:

由于multipatch转slpk使用create 3d object工具存在细缝是个已知的bug。

在这里推荐一个绕行方案:

使用cityengine2019将multipatch导入转为slpk,转完的slpk在pro中显示没有出现纹理贴图缝隙的问题。

cityengine2019支持直接import multipatch而无需以脚本的形式导入,导入后直接导出为slpk,cityengine2019采用的是i3s 1.7版本。

三维数据入到arcgis平台的解决方案_第4张图片

但是这时候可能会出现模型有黑线的情况,如上图:

其实不是模型的问题,是因为arcgispro默认打开了光照。

三维数据入到arcgis平台的解决方案_第5张图片

只需将“enable lighting”选项不选中就能去除黑色。

三维数据入到arcgis平台的解决方案_第6张图片

⑥skp数据无法导入到arcgispro

如果sketchup生成的skp数据通过arcgispro的数据互操作模块无法导入成功,可以在sketchup中检查skp数据,查看该数据在每个图层下是否都有数据,如果在sketchup中发现有的图层没有数据,通过逐层将有数据的图层导出为dae,最后将各个图层的dae通过arcgispro的import 3d files工具导入。

⑦拆分三维模型

方法一:将不连在一起的多面体(multipatch)进行拆分,可以使用“slice multipatch”工具。

方法二:如果是obj模型,可以使用拆分工具(两个工具供选择)

  • https://github.com/xinying180/slpkTools_Pro2.6  
  • (仅适用于arcgispro2.5)链接:https://pan.baidu.com/s/1Q9e2FWyVjtnKp8-68mLeZA   提取码:xb7f 

⑧使用arcgispro将multipatch转slpk软件崩溃

多半是由三维模型贴图造成的,这时可以考虑使用cityengine将multipatch转为slpk。

2、倾斜摄影

①模型有白块

使用arcgispro2.5的集成网格图层包(create integreted mesh layer scene package)工具转完,发现生成的slpk会有白块的情况

解决方法:

使用这个脚本工具进行处理即可解决。

链接:https://pan.baidu.com/s/1Ff2aJNJhjQPH4SuNo3PyPg

提取码:vmfj

②压平工具

使用压平工具,现在支持对地理坐标系和投影坐标系的工具进行压平处理:

链接:https://pan.baidu.com/s/1D7KaxUy-u2FsM3rhEXylEA

提取码:w8vl

效果图:

三维数据入到arcgis平台的解决方案_第7张图片

③osgb存放路径有特殊中文字符,报错error 999999

例如:路径为C:\Asiya\特\Data,报错报error999999,说存储路径有特殊字符,如果路径为纯英文路径就不报错。

回答:

osgb的存放路径不要有中文字符

④Osgb转为slpk,停靠点和转完的slpk之间有偏移?

回答:

是因为转时如果只取osgb的部分数据就会有偏移,如果取全部数据就不会有偏移,同时停靠点必须是元数据中的坐标值来指定。

全部数据是指,从Tile+0+0+0开始,而不是例如:Tile+3+3+3开始。

⑤osgb转slpk软件崩溃

原因:

很可能和某个tile文件夹下osgb跨级有关。可以在转换时去定位在哪个level报错,然后去对应的文件夹查看数据是否跨级。

⑥arcgispro支持单体化吗?

不支持。单体化是指生成的倾斜数据中每个建筑物但是单个模型,点击任意一个模型能够弹出该模型对应的属性信息。

绕行方案,生成多面体,将多面体改成透明,在前端js开发中将多面体的场景服务叠加在倾斜摄影的场景服务上,进行点击查询属性。

⑦3d tile转slpk

方法一:FME官方说新版本的FME可以将3d tile转为slpk,

方法二:可以使用pro的数据互操作模块将3d tile转为obj,再将obj转为multipatch;

方法三:现在的思路是先把数据转成obj之类的模型再转成slpk;FME可以建一个流程去处理;

方法四:pro在未来会直接支持将3dtile转为slpk,但是目前不行。

⑧osgb转slpk工具

方法一:可以使用arcgispro自带的create integreted mesh scene layer package工具来转。

三维数据入到arcgis平台的解决方案_第8张图片

如果报错,可以使用下述链接的工具来转:

方法二:(适用于在arcgispro2.5的环境下运行)https://github.com/xinying180/slpkTools_1.7 ;

(适用于在arcgispro2.6的环境下运行)https://github.com/xinying180/slpkTools_Pro2.6

(适用于在arcgispro2.7的环境下运行)https://github.com/xinying180/slpkTools_Pro2.7

方法一和方法二中的工具支持自定义坐标系以及支持将自定义坐标系转为有wkid的坐标系。

方法三:https://github.com/giserHacter/osgb-slpk

方法四(适用于大场景):原始航拍照片通过smart3D结合链接中提供的转换文档(https://github.com/giserHacter/-ContextCapture-SLPK-)转成slpk,对smart3d生成的slpk进行处理的工具集,

https://github.com/giserHacter/esrichina-i3s-opmesh-tools

方法五:易智瑞三维团队自研了三维数据治理软件,可以向易智瑞销售申请能否试用。

3、BIM

①BIM数据如何入到arcgis平台,移动到真实的位置,并且发布成三维场景服务,以及前端调用

参考链接:http://zhihu.esrichina.com.cn/article/4000

②revit数据加载到arcgispro纹理贴图不显示

答案写在最前面:arcgispro2.6支持贴图和材质。

revit中的效果:

三维数据入到arcgis平台的解决方案_第9张图片

Pro2.5中的效果:

三维数据入到arcgis平台的解决方案_第10张图片

arcgispro2.5读取revit数据,官网(https://pro.arcgis.com/en/pro-app/help/data/revit/adding-revit-data-to-arcgis-pro.htm )有这样的一句话

三维数据入到arcgis平台的解决方案_第11张图片

其中material表示纹理贴图的意思。

Pro2.5不支持读取revit数据的颜色贴图和图片贴图,但是如果属性带颜色的是可以有颜色渲染的,Pro可以自动读取带颜色的属性字段,做模型的时候材质属性有的话可以带过来。而用户那个revit数据就是图片贴图,所以Pro2.5读取不了。

下述效果,绿色的树应该是带颜色的属性。

三维数据入到arcgis平台的解决方案_第12张图片

③arcgis对pdms的支持情况

易智瑞与国内合作伙伴一起实现了对主流BIM软件的支持如Bentley、CATIA、Tekla、PDMS等,同时支持中间交流格式IFC(并支持IFC 4.x标准)、STEP等。

目前pdms的数据格式需要使用飞渡科技的插件才能转为arcgis支持的slpk格式,飞渡科技是易智瑞的合作伙伴。

arcgis目前不能直接将pdms的数据转为自身的三维格式。如果您想使用飞渡科技的插件需要联系易智瑞的销售。

https://m.sohu.com/a/313989775_609577

技术路线:那个PDMS模型应该都是保存成IFC格式以后,飞渡的软件转换成OSGB再转成SLPK的,也就是飞渡其实做的就是将IFC转为OSGB,同时飞渡也可以将生成的OSGB转为slpk。

4、点云

点云数据从入到arcgis平台、发布场景服务到前端调用,可以参考博客https://blog.csdn.net/gislaozhang/article/details/108674406

另外,也可以参考易智瑞公开课《点云数据在arcgis平台中应用》https://www.bilibili.com/video/av80340641/

 

 

参考资料:

https://blog.csdn.net/ceibake/article/details/88863558

https://blog.csdn.net/ceibake/article/details/80932363

 

更多三维方面的内容,请关注微信公众号:gislaozhang

 

你可能感兴趣的:(ArcGIS,Desktop,三维,三维,arcgispro,osgb,倾斜摄影,3dmax)