Вот модифицированный (с @Sumit намеков) версия @gusper ответ, который работал для меня: (я имел пончики)
function isMarkerInsidePolygon(marker, poly) {
var inside = false;
var x = marker.getLatLng().lat, y = marker.getLatLng().lng;
for (var ii=0;ii<poly.getLatLngs().length;ii++){
var polyPoints = poly.getLatLngs()[ii];
for (var i = 0, j = polyPoints.length - 1; i < polyPoints.length; j = i++) {
var xi = polyPoints[i].lat, yi = polyPoints[i].lng;
var xj = polyPoints[j].lat, yj = polyPoints[j].lng;
var intersect = ((yi > y) != (yj > y))
&& (x < (xj - xi) * (y - yi)/(yj - yi) + xi);
if (intersect) inside = !inside;
}
}
return inside;
};
Если многоугольник затем вы можете ориентировать каждый сегмент (внутри/снаружи). Рисование полупрямой от любой точки до бесконечности закончится нечетным или четным числом пересечений сегментов (всегда нечетным или всегда даже для каждого направления): четное число пересечений - это точки вне полигона и нечетные внутри. Таким образом, вы можете выбрать любое направление, например. ось x: проверьте пересекающиеся сегменты на '[pt.x, pt.y] - [inf, pt.y]' (вы также можете привязать полупрямую к ограничивающей рамке многоугольника). Есть, конечно, способы сделать это более эффективно: https://en.wikipedia.org/wiki/Point_location – BeyelerStudios
Я спрашиваю, есть ли метод, который позволяет мне определить широту и долготу многоугольника, а затем определить, точка находится внутри многоугольника или не используется javascript –
Я предлагаю вам усовершенствовать свой вопрос: а) проблема, которая у вас есть, и ожидаемое решение, которое вы хотите, б) полное описание того, что вы пробовали, и c) код, который у вас есть до сих пор – BeyelerStudios