@peretc001

Определение точки внутри МКАД API Yandex?

Добрый день, прошу помощи с одной функцией 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
  • Вопрос задан
  • 387 просмотров
Пригласить эксперта
Ответы на вопрос 1
@peretc001 Автор вопроса
Опс, вопрос снять, неправильно передавал координаты точки ))
inPoly (55.718872, 37.499893 ) - правильно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы