Карты Google v3: проверить, существует ли точка в многоугольнике

Я ищу способ проверить, существует ли точка внутри многоугольника в Google Maps v3 (JavaScript). Я искал повсюду, и единственные решения, которые я нашел до сих пор, связаны с получением границ многоугольника, но показанный код, похоже, просто создает прямоугольник и продолжает расширять его площадь поверхности, чтобы включить все соответствующие точки.

Кстати, причина, по которой я не могу просто использовать большой квадрат, т.е. получить границы полигонов, заключается в том, что у меня есть граничащие полигоны на карте, и они не могут распространяться на территорию друг друга.

РЕДАКТИРОВАТЬ Следуя приведенному ниже ответу, я попытался реализовать пример кода, используя один из моих существующих многоугольников, но он просто говорит, что он не определен, и я не могу понять, почему.

Вот мое объявление:

myCoordinates = [
    new google.maps.LatLng(0.457301,-0.597382),
    new google.maps.LatLng(0.475153,-0.569916),
    new google.maps.LatLng(0.494379,-0.563049),
    new google.maps.LatLng(0.506738,-0.553436),
    new google.maps.LatLng(0.520470,-0.541077),
    new google.maps.LatLng(0.531456,-0.536957),
    new google.maps.LatLng(0.556174,-0.552063),
    new google.maps.LatLng(0.536949,-0.596008),
    new google.maps.LatLng(0.503991,-0.612488),
    new google.maps.LatLng(0.473780,-0.612488) ];

polyOptions = { 
    path: myCoordinates,
    strokeColor: "#FF0000",
    strokeOpacity: 0.8,
    strokeWeight: 2,
    fillColor: "#0000FF",
    fillOpacity: 0.6 };

var rightShoulderFront = new google.maps.Polygon(polyOptions);
rightShoulderFront.setMap(map);

и вот где я проверяю суть:

var coordinate = selectedmarker.getPosition();
var isWithinPolygon = rightShoulderFront.containsLatLng(coordinate);
console.log(isWithinPolygon);

Но он продолжает выдавать ошибку: Uncaught ReferenceError: rightShoulderFront не определен

29
задан halfer 2 July 2017 в 23:09
поделиться