- 积分
- 389
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-11-29
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2012-9-27 17:04:41
|
显示全部楼层
MeteoInfo 发表于 2012-9-27 16:50
自己实现吧,就是简单的两点间距离计算,然后找出距离最近的点,可以设定一个搜索范围来提高效率。
改写了一下,循环所有的乡镇格点,限定距离5km,如下:
aLayer = mipy.MapDocument.ActiveMapFrame.MapView.GetLayerFromName("alltown.shp")
for gPoint in mipy.MapDocument.ActiveMapFrame.MapView.GraphicCollection.GraphicList:
aP = gPoint.Shape.Point
townName="无"
i=0
for point in aLayer.ShapeList (这行提示出现错误)
px=aLayer.GetCellValue("LONGTITUE", i)
py=aLayer.GetCellValue("LATITUE", i)
if GeoComputation.GetDistance(aP.X,aP.Y,px,py)<5
townName=aLayer.GetCellValue("RNAME", i)
break
i+=1
print aP.X, aP.Y,townName
提示出错
SyntaxError:unexpected token '<newline>' ,请问是何原因? |
|