[英]Find coordinate of the closest point on polygon in Shapely or GeoPandas
我想找到一个点到一个多边形的距离,但真正的近距离
我正在执行以下操作:
from shapely.geometry import Point, Polygon
import shapely
import shapely.ops
from shapely.ops import nearest_points
coords2 = [(50.848677, 4.338074), (50.833264, 4.344961), (50.840809, 4.366227), (50.852455,
4.367945 ), (50.858306, 4.346693)]
poly_2 = Polygon(coords2)
p2 = Point(50.811948, 4.382617)
print(p2.within(poly_2))
p2__ = nearest_points(poly_2, p2)
print("****:",p2__[0])
结果是: ****: POINT (50.840809 4.366227) 这是距离几何最近的点。 我想得到真正的最近点
任何想法?
现在这很容易,您知道结果点将位于连接多边形上 2 个点的线段上,并且这些点之一是您正在寻找的最近点。 这应该很容易,因为您只需计算两点之间的中点,如果您的原始结果点位于中点的任一侧,则该点更接近该特定点。 例如:如果该点位于线段 AB 的前半部分,那么最近的点将是 A,但是,如果它位于第二部分,则它更靠近 B 点。
现在剩下的唯一任务是找到穿过计算结果点的线段 AB。 为此,只需遍历多边形的每条边,根据 y=mx+c 获取线的 eq 并计算您的答案是否满足线的 eq。
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.