免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

12
返回列表 发新帖
楼主: 花睡去
收起左侧

[求助] 求线上的点到线起点的距离

[复制链接]

90

主题

5123

铜板

17

好友

教授级高工

Rank: 12Rank: 12Rank: 12

积分
1335
QQ
发表于 2024-3-20 10:36 | 显示全部楼层
这么高级的学问,学习一下
回复 支持 反对

使用道具 举报

4

主题

1万

铜板

7

好友

资深会员

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

积分
3120

精华勋章

发表于 2024-3-20 11:40 | 显示全部楼层

这么高级的学问,学习一下
回复 支持 反对

使用道具 举报

0

主题

9577

铜板

4

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
603
发表于 2024-3-20 11:46 | 显示全部楼层
花睡去 发表于 2024-3-19 17:55
在ARCGIS的Python窗口中可以运行的。到这一句就出错了。

看错误信息显示第一行就出现问题了,你可以尝试着将“图斑”换成路径  r"D:\Users\Administrator\Documents\ArcGIS\Default.gdb\图斑"  试试,我给的路径是个示例,你换成真实的。
同样的底下 “点” 你也换成真实的路径试试。
回复 支持 反对

使用道具 举报

0

主题

1万

铜板

10

好友

教授级高工

Rank: 12Rank: 12Rank: 12

积分
1328

精华勋章

发表于 2024-3-20 15:10 | 显示全部楼层
不会代码,路过帮顶
回复 支持 反对

使用道具 举报

12

主题

1万

铜板

29

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
1052
QQ
发表于 2024-3-20 15:41 | 显示全部楼层
中间每一步加AddMessage(),用来测试每行的输出是否正确
回复 支持 反对

使用道具 举报

0

主题

445

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
54
 楼主| 发表于 2024-3-20 16:39 | 显示全部楼层
本帖最后由 花睡去 于 2024-3-20 16:40 编辑

问题解决了。首先需要将“图斑”面转为线,然后用线和点来进行运算。
1.将图斑转为线;
2.在“点“”要素中加入“DISTANCE”字段,用于存储点到起点的距离;
3.运行程序
  1. with arcpy.da.SearchCursor('图斑转线', [ "SHAPE@"]) as cursor:
  2.     for row in cursor:
  3.         pline = row[0]
  4.         with arcpy.da.UpdateCursor('点', [ "SHAPE@", "DISTANCE"]) as cursor1:
  5.             for row1 in cursor1:
  6.                 for pnt in row1[0]:
  7.                     point = arcpy.Point(pnt.X, pnt.Y)
  8.                     ptGeometry = arcpy.PointGeometry(point)
  9.                     print("distance=%.4f" % pline.measureOnLine(pnt))
  10.                     print("distance=%.4f" % pline.measureOnLine(point))
  11.                     print("distance=%.4f" % pline.measureOnLine(ptGeometry))
  12.                     row1[1] = pline.measureOnLine(pnt)
  13.                     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
20240320163830.jpg
回复 支持 反对

使用道具 举报

1

主题

1万

铜板

15

好友

教授级高工

Rank: 12Rank: 12Rank: 12

积分
1307
发表于 2024-3-20 16:50 手机频道 | 显示全部楼层
学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表