Я пытаюсь проверить, проходит ли полилиния Google Карты через многоугольник Google Maps. Звучит просто. Но я искал и искал ... и не нашел реальных ответов.Проходит ли эта полилиния через этот многоугольник?
Ближе всего я получил эту функцию. Он работает, но, к сожалению, возвращает случайный ложный результат.
//nvert = the number of points in the polygon
//vertx = an array of all the polygon's latitudes
//verty = an array of all the polygon's longitudes
//elat = the current point's latitude
//elng = the current point's longitude
function pnpoly(nvert, vertx, verty, elat, elng) {
var i, j, c = false;
for(i = 0, j = nvert-1; i < nvert; j = i++) {
if(((verty[i] > elng) != (verty[j] > elng)) &&
(elat < (vertx[j] - vertx[i]) * (elng - verty[i])/(verty[j] - verty[i]) + vertx[i])) {
c = !c;
}
}
return c;
}
Перед тем, как попробовать совершенно новый метод (а crazy math idea, который возвращает меня к 12 классу исчисления), мне интересно, кто-нибудь знает, как это сделать.
Оглядываясь назад, я думаю, что моя проблема проходила во всех точках линии к этой функции, включая последнюю точку и первую точку вместе. Это сделает замкнутый многоугольник, который вернет ложный результат. – podcastfan88