python寻找距离最近的点_python – 在Shapely中查找多边形上最近点的坐标

说我有以下多边形和点:

>>> poly = Polygon([(0, 0), (2, 8), (14, 10), (6, 1)])

>>> point = Point(12, 4)

我可以计算点到多边形的距离……

>>> dist = point.distance(poly)

>>> print(dist)

2.49136439561

…但我想知道最短距离所测量的多边形边界上的点的坐标.

我最初的方法是缓冲点到多边形的距离,并找到该圆与多边形相切的点:

>>> buff = point.buffer(dist)

但是,我不确定如何计算这一点.两个多边形不相交,所以list(poly.intersection(buff))不会给我这一点.

我是否在正确的轨道上?有更简单的方法吗?

解决方法:

有一种简单的方法可以依靠Shapely函数来完成这项工作.

首先,您需要获得多边形的外环并将该点投射到环上.由于多边形,因此必须将外部视为LinearRing

没有投影功能.与直觉相反,这给出了一个距离,即从环的第一个点到最接近给定点的环中的点的距离.然后,您只需使用该距离来获得插值函数的点.请参阅下面的代码.

from shapely.geometry import Polygon, Point, LinearRing

poly = Polygon([(0, 0), (2,8), (14, 10), (6, 1)])

poin

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值