Я ищу способ проверить, существует ли точка внутри многоугольника в 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 не определен