背景:在导入一份数据时候,arcmap出现无法绘制一个或多个图层的错误,...点数少于要素所要求的的数量,查阅了半天资料发现是制作数据时候拓扑关系错误造成,现将处理方法详细记录如下:
1.原数据:
导入postgres数据库以后数据报错如下,数据也零零散散变成原来的一半了
2.原因
制作数据的时候拓扑关系有错误
3.解决方法:
3.1检查错误
打开工具箱---数据管理工具---要素---检查几何
输入有问题的数据源,输出表代表错误信息输出的地方
结束后输出文件
代表数据有错误
3.2修复
打开工具箱---数据管理工具---要素---修复几何
修复后提示修复成功,有警告信息的话可以再次进行修复
修复好的数据如下所示
修复好以后我们就可以使用工具将数据导入数据库且不会报错了
4.扩展 4.1新建拓扑
必须放数据库的数据集中,数据集右键新建拓扑



一个数据只能参加一个拓扑,一个拓扑可以有多个数据,一旦建立拓扑检查,数据不可修改删除,数据很多操作有限制,删除拓扑之后就可以
数据必须放数据集里,不放在数据集中就无法创建拓扑,报错如下

4.2 SHP文件拓扑检查
shp不可以直接进行拓扑检查,需要导入数据集 或者新建数据集,坐标系要一致,做拓扑检查之前数据需要备份


新建拓扑,不能重叠,结果


拓扑会修改数据,数据会发生改变
注:修复几何,在拓扑之前完成,否则无效。 功能是外多边形变成顺时针,内多边形变成逆时针 做拓扑检查之前先做修复几何,拓扑检查错误会减少很多