在Shapely中找到多边形上最近点的坐标。

6 浏览
0 Comments

在Shapely中找到多边形上最近点的坐标。

假设我有以下多边形和点:

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

enter image description here

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

>>> dist = point.distance(poly)
>>> print(dist)
2.49136439561

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

我的初步方法是通过点到多边形的距离缓冲区,找到该圆在多边形上切线的点:

>>> buff = point.buffer(dist) 

enter image description here

然而,我不知道如何计算该点。这两个多边形不相交,因此list(poly.intersection(buff))不会给我该点。

我这样做对吗?有没有更简单的方法?

0