2014-01-09 3 views
0

Я работал с большой библиотекой JVectorMap. Когда пользователь выбирает конкретную страну на карте, я хотел бы иметь возможность определить, какие страны соседствуют или разделяют границу.Как определить соседи по SVG-пути?

Мои поиски расчета расстояний между дорожками SVG никуда меня не доставили. Может ли кто-нибудь предложить хорошее решение, чтобы определить, какие страны являются соседями, а какие нет?

Спасибо!

ответ

0

Предположим, что формы стран - это элементы пути SVN, которые вы можете проверить, что эти страны (пути) имеют совпадающие вершины или расстояние в пределах заданного порога.

1

Я думаю, что лучшим подходом будет массив, в котором перечислены страна и ее граничащие страны. Затем используйте массив для фильтрации ваших результатов. Создание массива не будет сложно, так как следующие списки сайтов граничащих стран в таблице: Land borders

Это может занять несколько часов, но я уверен, что другие будут ценить вашу работу :)

0

Там ISN» t функциональность для этого непосредственно в jvectormaps. Но то, что вы можете сделать, это применить и увеличивающиеся значения на каждой горизонтальной или вертикальной полосе регионов (назвать это что-то вроде данных-ADJ), и вы можете сделать что-то вроде:

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

Это будет действительно работать только если вы «Ищите смежность, а не что-то вроде того, сколько регионов над регионом.

0

мне нужно было выяснить, то же самое, так что я сделал это: https://github.com/FnTm/country-neighbors

Это в основном содержит один файл JSON, который описывает наземные сосед для большинства стран мира.

Для большинства случаев он должен делать то, что вам нужно.

Смежные вопросы