use*_*752 1 python geometry numpy point-in-polygon shapely
我正在尝试找到一种有效的方法来计算python中从点到多边形的最近边缘的距离.我认为它的形状很完美,但它只计算点在多边形外的距离.我想过opencv,它有一个内置函数,但它需要整数坐标(我不能离散我的数据).多边形不保证是凸的.
使用.boundary[Multi] Polygon 的属性返回LinearRings的[Multi] LineString,然后使用该.distance属性..exterior如果您只想要外环,也可以使用该属性,而不是任何内环(如果存在).例如
from shapely import wkt
poly = wkt.loads('POLYGON((30 10, 40 40, 20 40, 10 20, 30 10))')
pt = wkt.loads('POINT(20 20)')
# The point is in the polygon, so the distance will always be 0.0
poly.distance(pt) # 0.0
# The distance is calculated to the nearest boundary
poly.boundary.distance(pt) # 4.47213595499958
# or exterior ring
poly.exterior.distance(pt) # 4.47213595499958
Run Code Online (Sandbox Code Playgroud)
其结果是相同的.boundary,并.exterior用这个例子,但可以为其他的例子发生改变.