如何确定SVG路径邻居?

时间:2014-01-09 17:11:57

标签: javascript svg jvectormap

我一直在使用伟大的JVectorMap库。当用户在地图上选择特定国家/地区时,我希望能够确定哪些国家/地区相邻或共享边界。

我在SVG路径之间计算距离的搜索并没有让我随处可见。任何人都可以建议一个好的解决方案来确定哪些国家是邻居,哪些国家不是?

谢谢!

4 个答案:

答案 0 :(得分:1)

我认为最好的方法是列出一个国家及其国家名称的数组。然后使用数组过滤结果。创建阵列并不困难,因为以下站点列出了表中的国家/地区: Land borders

这可能需要几个小时,但我相信其他人会很感激你的工作:)

答案 1 :(得分:0)

假设国家形状是svg路径元素,您可以检查这些国家(路径)是否具有重合的顶点或具有给定阈值内的距离。

答案 2 :(得分:0)

在jvectormaps中没有直接执行此操作的功能。但你可以做的是在每个水平或垂直区域条带上应用一个递增值(称之为data-adj),你可以做类似的事情:

for( i in regions ){
    if (Math.abs(this.data-adj - region[i].data-adj) <= 1){
        //is adjacent so do something
    }
}

如果您正在寻找邻接而不是某个地区有多少个地区,那么这真的有效。

答案 3 :(得分:0)

我需要找出同样的事情,所以我做了这个:https://github.com/FnTm/country-neighbors

它主要包含一个json文件,它描述了世界大部分地区的陆基邻居。

对于大多数情况,它应该做你需要做的事情。