使用supermap创建三维管线模型并发布服务调用

一、软件配置

  • SuperMap_iServer_9D 
  • SuperMap iDesktop .NET 9D

二、三维管线创建步骤

1、数据准备

打开supermap桌面软件,右键“未命名工作空间”、“新建文件型数据源”,选择创建“.UDB”格式的数据源。(注:1、如果选择创建‘.UDBX’的数据源,那么在以后调用其数据的服务的时候,打断过后的线可能查询不到属性。2、‘.UDB’格式的数据源是独占数据源,也就是说通过iserver发布服务并且开启服务之后,用supermap桌面端会打不开该数据源,同理桌面正在运行该数据源的话,在webgl中查询iserver数据服务的时候也会查询不到属性。)

使用supermap创建三维管线模型并发布服务调用_第1张图片

数据源新建完成之后,右键数据源,选择属性设置地理坐标系,如果设置投影坐标系,那么后面二维数据转三维数据之后将不能加到球面场景中,到时候还要更改坐标系,不如一开始设置好。

使用supermap创建三维管线模型并发布服务调用_第2张图片       使用supermap创建三维管线模型并发布服务调用_第3张图片

设置好地理坐标系之后,右键该数据源创建点、线数据集,并导人所需要的影像数据,导入‘tiff’格式的影像数据的时候,弹出的对话框不需要更改直接导入就行。如果手里只有‘OSGB’格式的三维数据,那就用“三维数据”下的‘配置文件’工具‘生成倾斜摄影配置文件’,‘源路径’选择所有‘OSGB’共在的Data文件夹。“模型参考点(模型中心点位置)”的设置,打开倾斜摄影数据的文件夹在和“Data”同级下有一个“metadata.xml”文件,打开这个文件,复制其“<SRS>”标签中的值到浏览器中搜索,然后将“<SRSOrigin>”标签中的坐标值在其中转换,转换之后复制到“模型参考点中”。

使用supermap创建三维管线模型并发布服务调用_第4张图片

使用supermap创建三维管线模型并发布服务调用_第5张图片

使用supermap创建三维管线模型并发布服务调用_第6张图片

使用supermap创建三维管线模型并发布服务调用_第7张图片

生成好配置文件之后,右键“场景”、‘新建球面场景’,然后右键‘普通图层’、‘添加三维切片缓存图层’,添加刚才生成的配置文件。然后使用“三维分析”、‘生成DOM’工具生成tiff格式的DOM数据,分辨率改为0.1米,相机高度设置的比右下角显示的相机高度高一点就可以。现在就可以在数据源中导入了。

使用supermap创建三维管线模型并发布服务调用_第8张图片

 

2、创建三维矢量数据

右键之前创建的线图层、属性,在属性表中添加字段“起始高程”、“终止高程”、“高度”在后面需要用到,因为管线在地下,调用服务之后可能看不到,所以将起始高程、终止高程、高度都统一设置的比当前影像的地物高度高就可以,比如设置为:50米。右键之前创建的点图层、属性,在属性表中添加“高度”字段,设置的字段值和线图层一致即可。然后添加影像手动矢量化。

使用supermap创建三维管线模型并发布服务调用_第9张图片使用supermap创建三维管线模型并发布服务调用_第10张图片

矢量化完成之后,使用“数据”、‘类型转换’中的‘二维点->三维点’、‘二维线->三维线’工具将二维数据转成三维数据。

然后使用“交通分析”、‘拓扑构网’、‘构建三维网络’或者‘自定义构建三维网络’生成三维网络,在弹出的对话框中选择“点自动打断线”,打断容差根据自己的绘图质量适当调整,可以设置的大一点,其他的不做修改。

使用supermap创建三维管线模型并发布服务调用_第11张图片

在“交通分析”、‘环境设置’前打勾,在右侧弹出环境设置的对话框,点击“管线模型设置”下拉框,点击‘构建管线模型’,在弹出的对话框中不用做修改,点击确定就可以了。在这面板中有“符号模型”、“接头模型旋转”、“接头模型缩放”等字段,这些字段之后的三维数据符号化都会有作用,不用做修改。

使用supermap创建三维管线模型并发布服务调用_第12张图片

使用supermap创建三维管线模型并发布服务调用_第13张图片

使用supermap创建三维管线模型并发布服务调用_第14张图片

这时候打开“ResultNetwork”属性表,将其全选,然后右键、‘另存为数据集’,“结果数据类型”选择“三维线”,并设置图层名称。同样打开“ResultNetwork_Node”的属性表进行相同的操作。完成之后将新生成的“ResultNetwork”数据集删除即可。然后打开生成的图层属性表将没有高程属性的数据进行补全,和前面设置的高程一致,即可。

使用supermap创建三维管线模型并发布服务调用_第15张图片

使用supermap创建三维管线模型并发布服务调用_第16张图片

 

3、三维数据符号化

右键“资源”、“线型符号库”、“编辑”、“新建符号”、“新建三维线符号”,在弹出的面板中“截面列表”、“交互编辑”中选择“圆形”的符号,然后在下面网格的绘制区域拉出来一个圆形就行了,注意记住“符号信息”中的“符号编号”。然后在“点符号库”、“三维符号”、“管点”中找到“阀门”符号,当鼠标移到阀门符号上的时候显示改符号的编号,记住该编号。

使用supermap创建三维管线模型并发布服务调用_第17张图片

使用supermap创建三维管线模型并发布服务调用_第18张图片

右键新生成的线图层,选择属性,在属性表中添加一个“color”字段设置为文本型作为管线的颜色设置,然后百度一种rgb颜色作为管线颜色,复制的时候不要复制井号,例如:436EEE,将其作为‘color’字段属性值。打开新生成的线图层属性表,找到“LineSymbolID”字段,将上面创建的三维管线符号的符号编码填入,color字段添加复制的rgb值。同样打开新生成的点符号的属性表,找到“MarkerSymbolID”字段,将前面记住的‘阀室’的符号编号填入。

使用supermap创建三维管线模型并发布服务调用_第19张图片

使用supermap创建三维管线模型并发布服务调用_第20张图片

三维数据的符号化需要通过制作专题图来实现,所以将修改完属性表的三维点、线图层添加到新的球面场景中,然后右键点、线图层、‘制作专题图’、‘自定义专题图’,点击确定生成专题图。点击新生成的点专题图。

使用supermap创建三维管线模型并发布服务调用_第21张图片

在右侧弹出的“专题图”对话框中设置“符号风格”为“MarkerSymbolID”字段,“图标缩放”为35倍,“模型符号旋转”设置为“Marker3DRotateX”、“Marker3DRotateY”、“Marker3DScaleX”,“模型符号缩放”设置为“Marker3DScaleX”、“Marker3DScaleY”、“Marker3DScaleZ”,如果设置完成之后,发现阀室图标是倒着的,可以在点图层属性表中将模型符号旋转的三个字段全部赋值为0。

使用supermap创建三维管线模型并发布服务调用_第22张图片使用supermap创建三维管线模型并发布服务调用_第23张图片

同样点击新生成的线专题图,设置“线型风格”为“LineSymbolID”,“线型颜色”为“color”,“线型宽度”为“25”。同时在工具栏“风格设置”、“高度模式”中将点、线专题图设置为“绝对高度”。

使用supermap创建三维管线模型并发布服务调用_第24张图片

使用supermap创建三维管线模型并发布服务调用_第25张图片

使用supermap创建三维管线模型并发布服务调用_第26张图片

最后将三维场景保存下来,右键该场景、“生成场景缓存”,设置点、线图层的“文件类型”为“S3M”类型。

使用supermap创建三维管线模型并发布服务调用_第27张图片

生成完场景缓存之后,新建球面场景,点击普通图层,添加三维切片缓存图层,选择上一步生成的场景缓存配置文件。如果添加完配置文件之后出现以下情况,三维管线只显示成二维的,如下图:

使用supermap创建三维管线模型并发布服务调用_第28张图片

解决方法为:右键场景下线图层,选择“图层属性”、‘三维切片缓存’,调大“LOD缩放比例”,可以设置为100。至此三维管线模型创建完毕,可以通过iserver发布服务进行调用。

使用supermap创建三维管线模型并发布服务调用_第29张图片

 

 

你可能感兴趣的:(supermap三维管线,webGL)