3

我正在尝试处理以下场景:

  • 从谷歌地球获取多边形坐标
  • 使用 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获取距离

    现在我被困住了......试图弄清楚:

    1. 如何找到其他 2 个边界点(在底部)
    2. 如何检测用户是否从任何一侧靠近(例如 3 米)多边形?(左,右,上,下)。在这种情况下,我不仅需要知道边缘边界点,还需要知道左、右、上和下的所有边界点?我可以计算用户位置和多边形之间的距离,但是从多边形中动态取什么点呢?我可以为此使用现有的库,例如 geopy 和 Shapely 吗?

    图片

4

1 回答 1

1

因此,如果我理解正确,您有一堆 Shapely 多边形,并且您想测试任意点是否接近这些形状。对于这个问题,匀称地提供了距离

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

请注意:距离以弧为单位,而不是以米为单位,因此您必须转换它们。

于 2012-11-21T12:27:45.870 回答