Найдите, находится ли координатная точка в пределах топографической функции, географической области, используя d3js

Мне нужно найти, находится ли географическая точка в пределах заданного объекта. Мне нужно найти это перед проекцией.

В моем приложении у меня есть набор стран, и я хочу взять координаты пользователя и посмотреть, в какой стране находятся эти координаты.

Я работаю над руководством по созданию карты http://bost.ocks.org/mike/map/ и иметь код, аналогичный разделу стилей полигонов


person Peter Saxton    schedule 23.06.2015    source источник


Ответы (1)


Это может быть хорошей отправной точкой. Из моих закладок об использовании чего-то подобного несколько лет назад для вычисления точки в многоугольнике для Google Maps.

//+ Jonas Raoni Soares Silva
//@ http://jsfromhell.com/math/is-point-in-poly [rev. #0]
function isPointInPoly(poly, pt){
    for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i)
        ((poly[i].y <= pt.y && pt.y < poly[j].y) || (poly[j].y <= pt.y && pt.y < poly[i].y))
        && (pt.x < (poly[j].x - poly[i].x) * (pt.y - poly[i].y) / (poly[j].y - poly[i].y) + poly[i].x)
        && (c = !c);
    return c;
}
person bowcot84    schedule 23.06.2015
comment
Прохладный. У вас есть какое-то объяснение алгоритма где-то - person Peter Saxton; 26.06.2015
comment
Это выглядит как PNPOLY. - person Joseph Sheedy; 02.10.2015