问题描述
需要求很多多边形的四角点及其坐标,也就是一个多边形的最东北、最西北、最东南、最西南四个角点及其坐标。
思路
百度上只有求四至的办法,就是一个多边形最东南西北至那里,但这样只能求出多边形外接矩形的范围,无法求出角点坐标。四至的具体求法见文章末尾。
而我需要的不是四至,而是四角点坐标,琢磨了一下,思路分为如下几部:
1、求多边形所有的角点
2、从这些点中筛选四角点坐标
具体工具
1、将多边形转点
数据管理——要素——要素折点转点
选择需要转的多边形输入,然后设置路径,其他默认。
2、删除多余的点
会发现首尾点重复出现了,也就是一个只有4个角点的多边形转出5个点。
参考https://blog.csdn.net/dragons123456/article/details/82700186
这里使用删除重复点工具。
就把位置相同的点删掉了。
3、选择x最小、x最大、y最小、y最大的四个点作为角点,其他点删掉。
3.1 汇总——同一多边形点的x、y最值
由多边形转出来的点,同一多边形具有相同的ORIG_FID。通过汇总,可以求得同一ORIG_FID的四个最值。
属性表——字段右键——汇总
3.2 将最值属性连接到点矢量文件中
3.3 按属性选择字段,并用字段计算器标注。
x=xmin的标1,x=xmax的标2,y=ymin的标3,y=ymax标4。
除此以外的点就是多余的点了,可以通过属性选择将其删掉。
至此,就求出了所有多边形的四角点,可以通过汇总检查一下数量,每个ORIG_FID应该对应四个点。
附注:如何求四至?
求四至其实是下面第二张图的情况,在字段计算器里输入简单的公式即可。
ArcGIS中求多边形的四至点可以直接根据字段计算器,利用Python语句直接求得
minX = !shape.extent.xmin!(输入时不用等号“=”前面的minX或MaxX等,直接用两个叹号和中间的。前面也不要有空格)
maxX= !shape.extent.xmax!
minY= !shape.extent.ymin!
maxY = !shape.extent.ymax!
参考:https://www.cnblogs.com/clgis/p/9831915.html
结束!