管网CAD 转 JSON 实战记录
引言
随着智慧城市和智慧管网项目的日益普及,将传统的 CAD 图纸数据转换为 Web 前端友好的 JSON 格式,已成为我们经常面临的挑战。这个过程不仅涉及数据格式的转换,更重要的是对原始 CAD 数据进行高效、精准的清洗。本文将详细记录我如何将某区域的 CAD 管网图纸清洗并转换为 Web 前端友好的 JSON 数据,希望能为遇到类似问题的你提供一份实用的操作指南。
项目背景与资料概况
本次项目资料为某区域的管网 CAD 图纸,其中包含了地形地貌、地下建筑等多种不相关的图层。

CAD 数据面临的挑战
在处理这份 CAD 图纸时,我们遇到了以下几个主要问题:
- 文件体积庞大:原始 CAD 文件非常大,对计算机性能(尤其是内存)要求较高,处理起来效率低下。
- 图层繁多复杂:图纸中包含大量与管网无关的图层,需要进行精细化筛选和清洗。
- 冗余信息干扰:需要处理的管网图层(如雨水、污水管网)中,包含大量流向箭头等多余线段,这些信息在转换为 JSON 后会增加数据量并干扰前端展示。
数据清洗与转换步骤
1. CAD 数据初步处理
首先,我们利用 CAD 的“选择相似”功能筛选出所需图层内容(例如雨水管网、污水管网),并将其复制到一个新的 CAD 文件中,确保坐标系不变。这一步旨在剥离不相关的图层,减少文件大小。
2. 清洗冗余流向箭头
在数据清洗过程中,我遇到了一个棘手的问题:管网上的流向箭头与管线本身在样式(线型、宽度)上几乎一致,难以区分。经过仔细观察,我发现所有箭头的尺寸是相同的。因此,我编写了一个 LISP 脚本来自动删除特定长度范围内的多段线,从而高效地去除了上万个不必要的流向箭头,极大地简化了数据。
1 | |
这个 LISP 脚本极大地优化了数据,减少了不必要的信息量,为后续转换奠定了基础。
3. 导入奥维互动地图并转换为图层文件
将清洗后的 CAD 文件导入奥维互动地图,并将其转换为图层文件。
关键步骤: 在导入奥维时,务必勾选“合并连续线段”和“合并相邻的等距直线”选项。这一操作能有效减少图形要素数量,因为原始 CAD 图中部分管网可能由多段线断开表示,合并后能形成完整的几何对象,提高数据质量和处理效率。

4. 坐标转换与投影选择
在奥维中,点击“导入地图”后,进入“坐标转换”界面。选择“横轴墨卡托投影坐标”,然后根据实际情况选择对应的坐标系。

这一步至关重要,需要根据您的项目实际情况来确定。例如,我的项目区域经纬度大致在 106°E, 29°N 附近,在 CAD 中对应的投影坐标为 356652, 373299。根据经验判断,这应属于 CGCS 2000_3_Degree_GK_Zone_36(3 度带第 36 带)。
小贴士: 在 ArcGIS 等 GIS 软件中,如果投影坐标的横坐标前两位是 35,通常说明使用的是 3 度带;如果是 18,则可能是 6 度带。
选择合适的投影坐标后,点击确定即可完成转换。

5. 导出为 GeoJSON 格式
上述步骤针对单个管网图层(例如雨水管网)进行了详细说明。对于其他需要处理的图层,如污水管网、雨水井、污水井等,操作流程类似,只需重复数据清洗和导入转换过程即可。
所有图层处理完毕并导入奥维后,即可选择导出为 GeoJSON 格式。GeoJSON 是一种轻量级的地理空间数据交换格式,非常适合 Web 前端应用。
深入理解:高斯-克吕格投影带的选择
为了帮助大家更好地理解和选择合适的投影坐标系,这里提供一份详细的高斯-克吕格投影带选择指南。
经度 106°位于中国境内,选择合适的投影带需根据具体应用场景(如比例尺、测图精度要求)以及所使用的坐标系标准。以下是详细分析与建议:
一、判断适用的投影带类型
我国采用高斯-克吕格投影,分为 6 度带和 3 度带两种分带方式:
| 分带类型 | 每带经差 | 全球带数 | 适用比例尺 |
|---|---|---|---|
| 6 度带 | 6° | 60 带 | 1:2.5 万~1:50万 |
| 3 度带 | 3° | 120 带 | 1:1万及更大比例尺 |
二、计算 106°所属的投影带
6 度带计算
公式: $N = \text{floor}((\text{经度} + 3) / 6) + 1$
代入 106°: $106 \div 6 \approx 17.67 \rightarrow \text{取整为 } 17 \rightarrow \text{带号} = 17 + 1 = 18$- 第 18 带范围:102°~108°
- 中央经线:105°
- 106° 在此范围内,属于 6 度带第 18 带。
3 度带计算
公式: $N = \text{floor}((\text{经度} + 1.5) / 3)$
代入 106°: $106 \div 3 \approx 35.33 \rightarrow \text{取整为 } 35$- 第 35 带范围:103.5°~106.5°
- 中央经线:105°
- 106° 在此范围内,属于 3 度带第 35 带。
⚠️ 注意: 106.5°是边界,若经度 $>106.5°$,则进入第 36 带(106.5°~109.5°)。
三、如何选择?——根据用途推荐
| 应用场景 | 推荐分带 | 理由 |
|---|---|---|
| 中小比例尺地图(如1:5万、1:25万) | 6 度带(第 18 带) | 符合国家标准,数据兼容性好 |
| 大比例尺测绘、城市工程、1:1万地形图 | 3 度带(第 35 带) | 精度更高,变形小,适用于高精度测量 |
| GIS 分析、CAD 制图、坐标转换 | 优先使用 3 度带 | 更适合局部区域高精度建模 |
四、补充说明(以重庆为例)
- 重庆市中心经度约 106.5°E,正好处于 6 度带第 18 带与 3 度带第 35 带的交界附近。
- 实际工作中,重庆地区常用:
- CGCS 2000_3_Degree_GK_Zone_35(3 度带第 35 带)
- 或 CGCS 2000_GK_Zone_18(6 度带第 18 带)
📍 例如在 ArcGIS 中,若坐标横坐标前两位是 35,说明使用的是 3 度带;如果是 18,则是 6 度带。
结语
通过上述数据清洗、奥维导入与坐标转换、以及最终的 GeoJSON 导出,我们成功地将复杂的 CAD 管网图纸数据转化为 Web 前端可直接使用的友好格式。这个过程虽然涉及多个步骤和工具,但掌握其核心原理和操作技巧,将大大提高智慧管网项目的数据处理效率和质量。希望本文能为您在实际工作中提供有益的参考!
当然也可看出不仅仅是 json ,只要成功导入奥维就可以转换为 kml、shape file 等一系列的格式。
[!tip]
如有帮助,请收藏、点赞、评论、转发一条龙~
微信公众号:环境猫 er
CSDN : 细节处有神明
个人博客:https://maoyu92.github.io/