Я хочу найти деревни / города, которые заканчиваются . Это означает: мне нужны эти деревни, которые связаны максимум с одной деревней на расстоянии X км.
Мне просто интересно, как называется этот алгоритм (наверное, кто-то создал что-то подобное раньше).
Есть ли инструмент для этого? Как называется эта концепция?
Например
City ------------ Village 1 ------- Village 2 ------ Village 3 - - - [ Mountain]
\ \ \
Village 4 | Road
| \ in mountains
Village 5----------Village6---------Village7 - - - - -
До тех пор, пока Дорога в горах длиннее Xкм, Village 3
и Village 7
будет считаться моим терминалом , потому что они связаны с одной деревней (V2, соответственно, V6).
В противном случае, я хочу создать один с открытыми данными, которые мы имеем.
Что я пробовал :
Загрузка данных OSM для моей страны (Румыния) и импорт деревень и городов в базу данных. Используя функции геолокации из базы данных, я могу найти деревни, у которых в радиусе R км не более X деревень .
Однако это не решение для моего случая, потому что в моих случаях деревня может быть на другой стороне горы, как в примере выше, но нет хорошего пути к нему (или нет вообще).
источник
Ответы:
Мне кажется, что вам нужно пройти по геометрии линии, извлекая координаты для каждого буфера конечной / конечной точки, он выбирает геометрию линии (из ваших дорог fc), если вы возвращаете только один объект с его конечной / конечной точкой, если больше, чем один это не так и цикл. Надеюсь, это имеет смысл ...
источник
Вы могли бы достичь этого, используя QGIS и программное обеспечение, изначально предназначенное для расчета связности ландшафта, такое как Graphab или Conefor . Например :
Я не смог это проверить - к сожалению, мне сейчас не хватает времени. Но я думаю, что это может сработать, если вы готовы немного подправить. Например, вам, вероятно, придется удалить ссылки, соединяющие два узла, которые находятся на каждой стороне препятствия (горы и т. Д.), Либо вручную (если их не слишком много), либо с помощью функций геообращения и формы, содержащей ваши препятствия. ,
источник