使用d3js查找坐标点是否在topojson要素,地理区域内

时间:2015-06-23 07:04:30

标签: d3.js geojson topojson

我需要找出一个地理点是否在给定的特征内。我需要在投影之前找到它。

在我的应用程序中,我有一组国家/地区,我想获取用户的坐标并查看这些坐标所在的国家/地区。

我正在制作一个地图教程http://bost.ocks.org/mike/map/,并且代码类似于样式多边形部分

1 个答案:

答案 0 :(得分:1)

这可能是一个很好的起点。从我多年前使用类似物品的书签来计算谷歌地图的多边形点。

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