我正在尝试处理以下场景:
- 从谷歌地球获取多边形坐标
通过 Shapely 划定界限:
>>> polygon = Polygon([(53.349459,-6.260159),(53.349366,-6.260126),(53.349383,-6.260012),(53.349478,-6.260053),(53.349459,-6.260159)]) >>> polygon.bounds (53.349366, -6.260159, 53.349478, -6.260012)
我得到 2 个坐标,它们是图形顶部的 2 个边界点。
通过geopy获取距离
现在我卡住了...试图弄清楚:
- 如何找到其他 2 个边界点(在底部)
- 如何检测用户是否从任何一侧靠近(例如 3 米)多边形? (左、右、上、下)。在这种情况下,我不仅需要知道边缘边界点,还需要知道从左、右、上、下的所有边界点?我可以计算用户位置和多边形之间的距离,但是从多边形动态获取的点是什么? 我可以为此使用现有的库,例如 geopy 和 Shapely 吗?
最佳答案
因此,如果我理解正确的话,您有一堆 Shapely 多边形,并且您想测试任意点是否接近这些形状。 针对这个问题匀称提供了distance :
from shapely.geometry import Point, Polygon
polygon = Polygon([(53.349459,-6.260159),
(53.349366,-6.260126),
(53.349383,-6.260012),
(53.349478,-6.260053),
(53.349459,-6.260159)])
testpoint = Point(53.349459,-6.260190)
dist = polygon.distance(testpoint)
print(dist)
>>> 3.09999999999e-05
请注意:距离以弧为单位而不是以米为单位,因此您必须转换它们。
关于python - 使用 Python、geopy、shapely 进行 GPS 定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13489835/