前言
通过txt、csv、excel等文本文件记录和共享地理信息数据,在实际业务场景中非常常见,本文将结合客户具体需求,介绍如何将记录在文本中的四至坐标数据导入至MapGIS中形式区数据。
场景
客户的数据如下图所示,表中记录了地物东西南北的极值坐标和一些属性,现在需要将记录了坐标信息的表导入为区图层。

实现思路
1、参考MapGIS Desktop操作手册中对txt数据导入的说明,支持将txt导入为点、线数据。这里可以先将其导入为线数据,然后通过“线拓扑造区”工具将其转为区数据。
实现步骤
要将第一张表中的数据导入为线,首先要参考文档中的要求,将其整理为标准格式:
ID,Name,Type <-- (1) 属性字段名称
100.0,20.0,0 <-- (2) 线段1上的点坐标[x,y,z],每个点一行
100.1,20.1,0
100.1,20.2,0
P1,农用地,水田 <-- (3) 线段1的属性值
; <-- (4) 线段1结束标志
其中第一行是属性字段名称,第二行开始是线段1的点坐标(xyz),每行是一个点。最后一行是分号,用于和下一条线做分隔,倒数第二行是属性值,属性值应与属性字段名称一一对应。以此类推,每条线段都是这种格式。最终形成的格式如下:

如果数据量比较大的话,可以结合AI工具,写一个脚本,自动将数据整理成这种格式。比如本文使用如下提示词,让AI帮我写了一个JS脚本自动化的完成了这个工作:
帮我写一个JS脚本,用于格式化处理csv中的文件,具体要求如下: 1、遍历指定文件夹中的csv文件; 2、根据列号提取数据四至坐标minx、miny、maxx、maxy; 3、生成四个角点坐标; 4、将度分秒坐标转换为小数点形式; 5、将结果输出到新的txt文件中,表头从第一行中获取,格式如下: ID,Name,Type <-- (1) 属性字段名称 100.0,20.0,0 <-- (2) 线段1上的点坐标[x,y,z],每个点一行 100.1,20.1,0 100.1,20.2,0 P1,农用地,水田 <-- (3) 线段1的属性值 ; <-- (4) 线段1结束标志 其中第一行是属性字段名称,第二行开始是线段1的点坐标(xyz),每行是一个点。最后一行是分号,用于和下一条线做分隔,倒数第二行是属性值,属性值应与属性字段名称一一对应。以此类推,每条线段都是这种格式。 6、现有的数据格式如下: xxxx 7、线要首尾相连,形成闭合的线。
至此,我们得到了一个标准格式的txt文件,接下来就可以按照文档中的说明,将其导入为线数据了。
- 在数据库上右键导入-其他数据

- 设置导入参数

这样就可以将txt文件中的数据导入为线数据了。
接下来,将线数据转为区数据。在MapGIS Desktop中,线数据可以通过“线拓扑造区”工具转为区数据。在MapGIS Desktop中,线拓扑造区工具位于头部“线编辑”菜单中。将上一步生成的线数据拖拽到中间的地图视图中,然后在左侧工作空间中选择该数据-右键-当前编辑,让线处于编辑状态,此时可以看到“线编辑”菜单中的“线拓扑造区”功能已经可用。点击该工具即可将线转换为区转换。


10万+

被折叠的 条评论
为什么被折叠?



