Python 如何判断点是否位于预定义边界中

Python 如何判断点是否位于预定义边界中,python,json,latitude-longitude,shapely,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必须以某种方式配置,才

我有一个坐标列表,如下所示:

  [
     -79.763635,
     42.257327
  ],
  [
     -73.343723,
     45.046138
  ],
  [
     -74.006183,
     40.704002
  ],
  [
     -79.763635,
     42.257327
  ]
我想看看点SomeLat,SomeLong是否在这些预定义的边界内

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


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

您可以将列表/元组列表传递给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

您可以将列表/元组列表传递给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

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

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

两个点相等。它是三角形吗?它们等于完整的边界,所以是的,它可以是三角形,它可以有更多的点,所以可以是任何多边形。-这有帮助吗?只要更改坐标列表,它就会工作。执行此操作:
list\u of\u points=[列表中i的元组(i)]
。然后,您可以创建
多边形
,并检查您的点是否在范围内。我刚刚在我的本地计算机上进行了测试,根据您提供的格式,它工作得很好。请注意,多边形中的普通点算法假定您的点位于平面上,而地球不是平面。除非你考虑到这一点,否则你可能会在两极和国际日期线上得到奇怪的结果。相关阅读:两点相等。它是三角形吗?它们等于完整的边界,所以是的,它可以是三角形,它可以有更多的点,所以可以是任何多边形。-这有帮助吗?只要更改坐标列表,它就会工作。执行此操作:
list\u of\u points=[列表中i的元组(i)]
。然后,您可以创建
多边形
,并检查您的点是否在范围内。我刚刚在我的本地计算机上进行了测试,根据您提供的格式,它工作得很好。请注意,多边形中的普通点算法假定您的点位于平面上,而地球不是平面。除非你考虑到这一点,否则你可能会在两极和国际日期线上得到奇怪的结果。相关阅读: