2015-06-23 9 views
0

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

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

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

ответ

1

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

//+ 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; 
} 
+0

Прохладный. У вас есть какое-то объяснение по алгоритму где-то –

+0

Похоже на [PNPOLY] (http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html) – velotron