如何判断点是否在预定义的边界内

How to tell if point is in a predefined borders

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

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

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

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

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

您可以将 lists/tuples 的列表传递给 shapely:

>>> 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

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