Добрый день, прошу помощи с одной функцией inPoly(x,y)
она неверно определяет находится ли адрес внутри МКАД, все адреса определяются как вне МКАД
function inPoly( x, y ){
let j = mkad_points.length - 1,
c = false; // true/false - внутри или вне полигона
for (i = 0; i < mkad_points.length; i++){
if ((((mkad_points[i][1]<=y) && (y<mkad_points[j][1])) || ((mkad_points[j][1]<=y) && (y<mkad_points[i][1]))) && (x > (mkad_points[j][0] - mkad_points[i][0]) * (y - mkad_points[i][1]) / (mkad_points[j][1] - mkad_points[i][1]) + mkad_points[i][0])) {
c = !c
}
j = i;
}
return c;
}
массив точек МКАД
let mkad_points = [
[55.78000432402266,37.84172564285271],
[55.775874525970494,37.8381207618713],
[55.775626746008065,37.83979446823122],
[55.77446586811748,37.84243326983639],
..........
[55.79131399999368,37.840581150787344],
[55.78000432402266,37.84172564285271]
];
Все координаты mkad_points не помещаются (они по ссылке
pastebin.com/raw/DKgMrxqF)
Координаты точки внутри МКАД 37.499893 55.718872
Если передать их в функцию inPoly (x, y ) получаю false
Даже если взять из mkap_point например последние 55.78000432402266,37.84172564285271
и передать в функцию все равно false