我一直在使用伟大的JVectorMap库。当用户在地图上选择特定国家/地区时,我希望能够确定哪些国家/地区相邻或共享边界。
我在SVG路径之间计算距离的搜索并没有让我随处可见。任何人都可以建议一个好的解决方案来确定哪些国家是邻居,哪些国家不是?
谢谢!
答案 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文件,它描述了世界大部分地区的陆基邻居。
对于大多数情况,它应该做你需要做的事情。