如何确定某个点是否属于jvectormap中的某个区域?

时间:2015-06-18 01:15:18

标签: jvectormap

有没有办法确定给定点([x,y]或[纬度,经度])是否是jvectormap区域的成员?

我已经知道如何将它们从一种格式转换为另一种格式,但我无法弄清楚它是如何平易近人的。

1 个答案:

答案 0 :(得分:1)

假设您在jVectorMap示例中创建了一个名为“world-map”的div中的地图。

在div中,jVectorMap将放置另一个具有类“jvectormap-container”的div,在这个容器中你会找到svg,在svg里面有所有的区域路径。

我的例子是普通的javascript,但您可以使用您喜欢的任何方法找到此路径,例如使用jQuery选择器,等等。

您应该搜索以您专门为要在其中搜索的地图创建的div开头的路径,因为您可以在一个页面中拥有多个jVectorMap。

在我的示例中,我使用onmousemove事件来显示区域代码和基础x,y坐标。

var paths = document.getElementById("world-map").firstElementChild.firstElementChild.getElementsByTagName("g")[0];

paths.onmousemove=function(e){
    var path = document.elementFromPoint(e.clientX,e.clientY);
    console.log('Region: ' + path.getAttribute("data-code") + ' at point: ' + e.clientX + ','+ e.clientY);
};

只需注意,如果您要搜索的点相对于0,0,例如最左边,地图的最上角,你应该添加这个元素偏移量,只需查看我的样本的控制台日志 - 或者更好,提供代码示例; - )