背景:在导入一份数据时候,arcmap出现无法绘制一个或多个图层的错误,...点数少于要素所要求的的数量,查阅了半天资料发现是制作数据时候拓扑关系错误造成,现将处理方法详细记录如下:

1.原数据:


导入postgres数据库以后数据报错如下,数据也零零散散变成原来的一半了



2.原因

制作数据的时候拓扑关系有错误

3.解决方法:

3.1检查错误

打开工具箱---数据管理工具---要素---检查几何

输入有问题的数据源,输出表代表错误信息输出的地方


结束后输出文件


代表数据有错误

3.2修复

打开工具箱---数据管理工具---要素---修复几何


修复后提示修复成功,有警告信息的话可以再次进行修复

修复好的数据如下所示


修复好以后我们就可以使用工具将数据导入数据库且不会报错了

4.扩展 4.1新建拓扑

必须放数据库的数据集中,数据集右键新建拓扑

ArcGIS无法绘制一个或多个图层_数据库

ArcGIS无法绘制一个或多个图层_arcgis_02

ArcGIS无法绘制一个或多个图层_数据库_03

一个数据只能参加一个拓扑,一个拓扑可以有多个数据,一旦建立拓扑检查,数据不可修改删除,数据很多操作有限制,删除拓扑之后就可以

数据必须放数据集里,不放在数据集中就无法创建拓扑,报错如下

ArcGIS无法绘制一个或多个图层_数据集_04

4.2 SHP文件拓扑检查

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

ArcGIS无法绘制一个或多个图层_数据_05

ArcGIS无法绘制一个或多个图层_数据集_06

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

ArcGIS无法绘制一个或多个图层_数据_07

ArcGIS无法绘制一个或多个图层_数据_08

拓扑会修改数据,数据会发生改变

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