頂点の座標のリスト = [(x1,y1), (x2,y2), (x3,y3),...] と point(x,y) を持つポリラインがあります。Shapely ではgeometry1.distance(geometry2)
、2 つのジオメトリ間の最短距離を返します。
>>> from shapely.geometry import LineString, Point
>>> line = LineString([(0, 0), (5, 7), (12, 6)]) # geometry2
>>> list(line.coords)
[(0.0, 0.0), (5.0, 7.0), (12.0, 6.0)]
>>> p = Point(4,8) # geometry1
>>> list(p.coords)
[(4.0, 8.0)]
>>> p.distance(line)
1.4142135623730951
しかし、ポイント(x、y)に最も近いライン上のポイントの座標も見つける必要があります。LineString
上記の例では、これはから 1.4142135623730951 単位離れたオブジェクト上のポイントの座標ですPoint(4,8)
。メソッドdistance()
は、距離を計算するときに座標を持っている必要があります。このメソッドからそれを返す方法はありますか?