Скажем, у меня есть следующий Polygon и Point:
>>> 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))
не даст мне эту точку.
Я на правильном пути с этим? Есть ли более простой метод?