为了避免手动输2w6平的地图,也不想自己写系统来处理,终于摸索出一条曲线救国大法。
环境
- 数据库
- PostgreSQL(需添加 PostGIS 插件)
- 软件
- ArcGIS
- AutoCAD(可选)
步骤
ArcGIS 常用工具
一、导入 CAD
❗️ ArcGIS 支持 CAD 数据的查看、导入、导出,但不支持编辑
❗️ 本人使用的ArcGIS版本为10.2,最高只支持2010版的CAD文件,高版本需要将其降为2010以下版本(大坑!)
-
添加 CAD 数据
也可从目录窗口中直接拖入CAD文件
二、绘制自己的 shp
-
新建 shp 图层
目录 — 新建 — Shapefile — 命名 — 选择需要的要素类型 — 确定
-
打开属性表,添加字段
-
选中新图层,进入编辑模式
-
创建第一个要素,作为框架
-
选中外围要素
-
使用裁剪面对选中要素划分
点要素按照步骤4方法直接添加
-
添加属性
三、导入 shp 到 postgreSQL
工具: PostGIS PostGIS Bundle 3 for PostgreSQL x64 12 Shapefile and DBF Loader Exporter
准备工作
在PostgreSQL数据库中加载PostGIS扩展
CREATE EXTENSION postgis; # 加载postgis空间扩展
SELECT postgis_full_version(); # 确认是否加载成功
-
连接 postgreSQL
-
选择要导入的 shapefile 文件
导入参数:
- Table:要导入的目标表名称
- Geo Column:geom属性字段名
- SRID:空间参考标识符(超纲了,有点难懂,目前还用不到它,感兴趣的可以参考 PostGIS教程四:加载空间数据)
- Mode:操作模式
- Create:新建表,表名为{ Table }的值
- Append:附加到表名为 {Table} 的表后面
- Delete:清空表名为 {Table} 的表内容
- Prepare:我也不是很清楚
-
导入
-
数据库中查看
四、空间坐标系问题
CAD 提供两种坐标系
- WCS(世界坐标系)
- UCS(用户坐标系)
导入到 ArcGIS 时会提示警告
⚠️ 未知的空间参考
导入结果
坐标系显示未定义,坐标值为 CAD 中 WCS 下的坐标值
对要素第一次进行投影,添加了坐标系,但坐标值保持不变
对要素第二次进行投影,坐标系变换,同时坐标值也会换算过去