Нахождение, находится ли координата в пределах многоугольника - PullRequest
0 голосов
/ 14 февраля 2020

Я хочу знать, находятся ли заданные координаты (широта и долгота) в пределах заданных 4 координат.

enter image description here

т.е. если у меня есть широта , A, B, C, D и E, и я хотел проверить, находится ли E в пределах A, B, C и E.

Как я могу это сделать?

Я пытался увидеть этот пример из Google Map Coordinates класс LatLngBound - содержит .

Пример, который я вижу, выглядит как

var bounds = new google.maps.LatLngBounds(
    new google.maps.LatLng(54.69726685890506,-2.7379201682812226),
    new google.maps.LatLng(55.38942944437183, -1.2456105979687226)
);
var center = bounds.getCenter();  // still returns (55.04334815163844, -1.9917653831249726)
var x = bounds.contains(center);  // now returns true

Он имеет только 2 координаты, как A & B. Как это возможно без координат C & D?

1 Ответ

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

Это потому, что используется LatLngBounds, который создает прямоугольник, а не многоугольник. Если у вас есть два угла поля, можно предположить два других угла. Вам просто нужно указать противоположные углы. В вашем примере вам просто нужно отправить либо A и D, либо B и C как пару, остальные два можно игнорировать. Если вам нужен многоугольник, то вы хотите создать многоугольник и затем определить, содержит ли он точку с google.maps.geometry.poly.containsLocation(point, polygon).

containsLocation() Документация здесь .

Полный пример здесь.

...