An's Blog
收藏、分享 …
Toggle navigation
Home
Cesium
SuperMap
ArcGIS
MapboxGL
CentOS
GeoServer
Favorites
Archives
Tags
三维管网构建操作手册
2023-10-31 17:56:35
11
0
0
admin
# **一、概述** ## **1. 软件列表** (1) SQL Server:用于构建空间数据,利用SQL脚本语句实现管线起点、终点逻辑关系建立; (2) ArcMap:用于空间数据处理,坐标转换,通常数据来源一般都为投影坐标系,需要转换为地理坐标; (3) iDesktop:用于将二维矢量数据生成三维管网数据,生成缓存数据加载到场景中; (4) Navicat:用于连接数据处理管点、管线间的空间逻辑关系; (5) AutoCAD:[可选]若提供的原始数据为CAD文件时,会使用到CAD软件。 ## **2. 制作流程** 数据来源一般为Excel、MDB和CAD文件,一般的处理步骤如下: 第1步:将管点、管线数据按特定标准结构导入SQL Server临时数据库。 第2步:在管点、管线表新增Shape空间字段和OBJECTID唯一标识字段; 第3步:执行特定语句更新空间逻辑逻辑关系; 第4步:使用iDesktop制作三维管网; 第5步:将生成好的三维管网缓存添加到场景中; # **二、构建矢量数据** ## **1. 将原始数据字段名称按以下标准修改为英文字段(中文字段导入iDesktop后会自动截断掉),可以通过Navicat数据导入功能** **点表:**  **线表:**  ## **2. 执行以下SQL语句更新管点、管线坐标数据** **管点Shape:** update XX_POINT set SHAPE = (geometry::STGeomFromText('POINT ('+ CONVERT(VARCHAR(20),CONVERT(DECIMAL(20,12),XX_POINT.Y))+' '+CONVERT(VARCHAR(20),CONVERT(DECIMAL(20,12),XX_POINT.X))+')', 0)); **管线Shape:** UPDATE XX_LINE SET SHAPE = ( geometry :: STGeomFromText ( 'LINESTRING (' + CONVERT (VARCHAR ( 20 ),CONVERT ( DECIMAL ( 20, 12 ), XX_LINE.QDX )) + ' ' + CONVERT (VARCHAR ( 20 ),CONVERT ( DECIMAL ( 20, 12 ), XX_LINE.QDY )) + ', ' + CONVERT (VARCHAR ( 20 ),CONVERT ( DECIMAL ( 20, 12 ), XX_LINE.ZDX )) + ' ' + CONVERT (VARCHAR ( 20 ),CONVERT ( DECIMAL ( 20, 12 ), XX_LINE.ZDY )) + ')', 0 )) FROM ( SELECT XX_LINE.*, ( SELECT Y FROM XX_POINT WHERE XX_POINT.[EXPNO] = XX_LINE.[SPOINT] ) AS QDX, ( SELECT X FROM XX_POINT WHERE XX_POINT.[EXPNO] = XX_LINE.[SPOINT] ) AS QDY, ( SELECT Y FROM XX_POINT WHERE XX_POINT.[EXPNO] = XX_LINE.[EPOINT] ) AS ZDX, ( SELECT X FROM XX_POINT WHERE XX_POINT.[EXPNO] = XX_LINE.[EPOINT] ) AS ZDY FROM XX_LINE ) XX_LINE where XX_LINE.QDX is not null and XX_LINE.QDY is not null and XX_LINE.ZDX is not null and XX_LINE.ZDY is not null AND XX_LINE.QDX <> XX_LINE.ZDX AND XX_LINE.QDY <> XX_LINE.ZDY; > **注意:更新完成后,将OBJECTID设置为主键。** **管线高程值更新:** UPDATE YS SET YS.SH = YS.Start_H, YS.EH= YS.end_H FROM ( SELECT YSLINE.*, ( SELECT YSPOINT.SURFH FROM YSPOINT WHERE YSPOINT.EXPNO = YSLINE.SPOINT ) AS START_H, ( SELECT YSPOINT.SURFH FROM YSPOINT WHERE YSPOINT.EXPNO = YSLINE.EPOINT ) AS END_H FROM YSLINE ) YS  ## **3. 通过ArcMap连接SQL Server数据导出管点、管线为Shape文件**  第1步:确保数据预览正常后,右击相应图层->Export->shapefile  第2步:对导出后的Shape图层设置空间参考坐标系,此步骤需要根据经验分析是什么坐标系,数据分析错误将导致生成管网失败。  第3步:数据坐标转换,将投影坐标转换为国家2000坐标系;  第4步:转完成后叠加到国家2000地理坐标系影像图上确认位置是否正确;  第5步:【可选】此数据有偏差,临时处理方案手动编辑手动,编辑后效果如下所示:  # **三、构建三维管网数据** ## **1. 打开iDesktop软件,新建*.udbx文件型数据库**  ## **2. 右击新建的udbx数据库文件,选择“导出数据集...”,在弹出对话框中选择shp文件**    ## **3. 在完成上面步骤,开始将管点生成三维点,并在弹出窗口中设置数据结果集、高程值**   ## **4. 开始将管线生成三维线,并在弹出窗口中设置数据结果集、起终点高程值**   ## **5. 生成管网拓扑,交通分析->拓扑构网->自定义构建三维网络,选择正确参数**  ## **6. 数据源生成的YS鼠标右键点击,选择属性,添加字段:管径DSize和Color颜色,然后点击应用**  ## **7. 数据源生成的YS鼠标右键点击,选择浏览属性表,在表格DSIZE标题:右键点击选择更新列,在运算因子输入想要的半径,然后点击应用**  ## **8. 右键点击YS,选择添加新的球面场景,在交通分析,打钩环境设置,在弹出的面板选择构建管状模型**  ## **9. 在构建管状模型面板直接点击确定**  ## **10. 展开资源目录,右键点击点符号库,选择加载符号库**  ## **11. 在根组右键点击,选择导入,选择文件GW.sym**   ## **12. 资源目录,右键点击线型符号库,选择加载符号库,在根组右键点击,选择导入,选择文件GW.lsl;** ## **13. 右键点击YS,选择浏览属性表,修改LineSymbolID字段的数据,为线型符号库的导入的符号编号**   ## **14. 展开YS,在YS里右键点击YS_Node,选择浏览属性表,将MarkerSymbolId字段,右键点击选择筛选,出现一个展开图标,点击展开图标,将330101一项打钩去掉,点击应用**  ## **15. 将MarkerSymbolId字段,右键点击选择更行列,输入运算因子为点符号库连接点的符号编号:55584,具体符号编号可根据附属物字段进行设置。**  ## **16. 筛选框的值选择330101,更行数据为,想要的附属物对应的符号编号,YS右键点击,选择添加新的球面场景,右键点击YS_Node@test,选择图层风格,选择导入符号库的任意一个**  ## **17. 右键点击YS@test,选择图层风格,选择导入符号库的任意一个** ## **18. 右键点击YS_Node@test,选择制作专题图,选择自定义专题图,选择默认**  ## **19. 设置专题图属性,如果地图没显示管网,关掉场景,重新添加场景**  ## **20. 右键点击WS@test,选择制作专题图,选择自定义专题图,选择默认。设置专题图属性**  ## **21. 移除WS@test、WS_Node@test** ## **22. 两个专题同时设置风格,选择相对地面,地下**  ## **23. 关掉场景,选择保存** ## **24.将保存的场景生成场景缓存**
Pre:
常用SQL语句
Next:
使用GDAL实现坐标转换
0
likes
11
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Table of content