|
楼主 |
发表于 2024-3-20 16:39
|
显示全部楼层
本帖最后由 花睡去 于 2024-3-20 16:40 编辑
问题解决了。首先需要将“图斑”面转为线,然后用线和点来进行运算。
1.将图斑转为线;
2.在“点“”要素中加入“DISTANCE”字段,用于存储点到起点的距离;
3.运行程序
- with arcpy.da.SearchCursor('图斑转线', [ "SHAPE@"]) as cursor:
- for row in cursor:
- pline = row[0]
- with arcpy.da.UpdateCursor('点', [ "SHAPE@", "DISTANCE"]) as cursor1:
- for row1 in cursor1:
- for pnt in row1[0]:
- point = arcpy.Point(pnt.X, pnt.Y)
- ptGeometry = arcpy.PointGeometry(point)
- print("distance=%.4f" % pline.measureOnLine(pnt))
- print("distance=%.4f" % pline.measureOnLine(point))
- print("distance=%.4f" % pline.measureOnLine(ptGeometry))
- row1[1] = pline.measureOnLine(pnt)
- cursor1.updateRow(row1)
复制代码
运行结果如下:
distance=0.0000
distance=0.0000
distance=0.0000
distance=40.7147
distance=40.7147
distance=40.7147
distance=59.6419
distance=59.6419
distance=59.6419
distance=66.8207
distance=66.8207
distance=66.8207
distance=79.4382
distance=79.4382
distance=79.4382
distance=98.1605
distance=98.1605
distance=98.1605
distance=112.7336
distance=112.7336
distance=112.7336
distance=118.9347
distance=118.9347
distance=118.9347
distance=131.7729
distance=131.7729
distance=131.7729
distance=0.0000
distance=0.0000
distance=0.0000
如图:
D:\20240320163830.jpg
|
-
|