Как рассчитать, принадлежит ли данная долгота и широта мультиполигональной области? - PullRequest
0 голосов
/ 04 февраля 2020

Как я могу вычислить, принадлежат ли данная долгота и широта области многоугольника в python?

Пример:

Мои "координаты": [-46.57421, -21.785741] # My location

Мне нужно убедиться, что координаты выше находятся в пределах области многоугольника ниже:

"coverageArea": { 
    "type": "MultiPolygon", 
    "coordinates": [
      [[[30, 20], [45, 40], [10, 40], [30, 20]]], 
      [[[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]]]
    ]
}

Я понятия не имею, с чего начать.

1 Ответ

1 голос
/ 04 февраля 2020

Библиотека shapely создана специально для этого!

Проверьте больше здесь: https://automating-gis-processes.github.io/CSC18/lessons/L4/point-in-polygon.html

В этом примере вы можете сделать:

from shapely.geometry import Point, Polygon

# Create Point objects
point = Point(-46.57421, -21.785741)

# Create a Polygon
polygon1 = Polygon([(30, 20), (45, 40), (10, 40), (30, 20)])
polygon2 = Polygon([(15,  5), (40, 10), (10, 20), ( 5, 10), (15,  5)])

# Check if point is within either polygon:
point.within(polygon1)
point.within(polygon2)
...