#面四至坐标的提取
#coding=utf-8
import arcpy
class WBJX:#外包矩形
XMin=0
XMax=0
YMax=0
YMin=0
class PolygonInfo:
FID=''
Part=[]#原点?存储所有(节点?)信息,x,y值
wbjx=WBJX()
class SZResult:#保存比较的结果
Flag=''
FID=''#要有一个ID?的哪条记录
point=arcpy.Point()
shpPath=''
DataSet=[]
with arcpy.da.SearchCursor(shpPath,['FID','SHAPE@']) as cursor:
for row in cursor:
polygonInfo=PolygonInfo#获取PolygonInfo类的实例polygonInfo
#为何不是polygonInfo=PolygonInfo()?
fid=row[0]
rask=row[1]
polygonInfo.FID=fid#将fid赋值给实例属性polygonInfo.FID
polygonInfo.wbjx.XMin=rask.extent.XMin
polygonInfo.wbjx.XMax=rask.extent.XMax
polygonInfo.wbjx.YMin=rask.extent.YMin
polygonInfo.wbjx.YMax=rask.extent.YMax
for part in row[1]:#遍历节点
for pt in part:#为什么不能直接for pt in row[1]?怎么用print打出代码作用?
point=arcpy.Point()
point.X=pt.X
point.Y=pt.Y
polygonInfo.Part.append(point)
DataSet.append(polygonInfo)#图形集合,如果在for pt in part:条件下,会怎么样?会追加polygonInfo?
ResultSZ=[]
for polygonItem in DataSet:#比较拐点的最大值最小值
tempSZResult=[]
for pt in polygonItem.Part:
if pt.X==polygonItem.wbjx.XMax:
dzSZResult=SZResult()
dzSZResult.point=pt
dzSZResult.FID==polygonItem.FID
dzSZResult.Flag='dongzhi'
tempSZResult.append(dzSZResult)
elif pt.X==polygonItem.wbjx.XMin:
xzSZResult=SZResult()
xzSZResult.FID==polygonItem.FID#这有什么作用?
xzSZResult.Flag='xizhi'
xzSZResult.point=pt
elif pt.Y==polygonItem.wbjx.YMin:
nzSZResult=SZResult()
nzSZResult.Flag='nanzhi'
nzSZResult.FID==polygonItem.FID
nzSZResult.point=pt
elif pt.Y==polygonItem.wbjx.YMax:
bzSZResult=SZResult()
bzSZResult.Flag='beizhi'
bzSZResult.FID==polygonItem.FID
bzSZResult.point=pt
ResultSZ.append(tempSZResult)
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。