如何判断点是否在预定义的边框中

时间:2017-01-31 17:07:12

标签: python json latitude-longitude shapely

我有一个像这样的坐标列表:

  [
     -79.763635,
     42.257327
  ],
  [
     -73.343723,
     45.046138
  ],
  [
     -74.006183,
     40.704002
  ],
  [
     -79.763635,
     42.257327
  ]

我想知道SomeLat,SomeLong是否在这些预定义的边界内。

我使用了shapely.geometry,但json必须以某种方式配置才能创建shape(我无法更改json)。

判断我提供的点是否在这些定义的边界内的最佳方法是什么

2 个答案:

答案 0 :(得分:2)

您可以将列表/元组列表传递给它:

>>> from shapely.geometry import Point, Polygon
>>> bbox = [ (0, 0), (0,2), (2,2), (2,0)]
>>> poly = Polygon(bbox)
>>> point = Point(1, 1)
>>> poly.contains(point)
True

答案 1 :(得分:0)

我不确定这是否是最好的方法,但这就是我要做的事情。我会识别构成多边形边界的所有点,这些点可以从您拥有的数据中获得。然后我将每两个共享相同经度坐标的边界极端纬度坐标拉在一起。最后一组应该是经度坐标列表及其相应的纬度范围,您可以循环确定一个点是否在多边形中。