Идеи с обработкой графика данных OSM для вывода простых узлов города / деревни с ребрами между ними - PullRequest
4 голосов
/ 01 апреля 2012

Input Graph and Output Graph after processing

На изображении выше показаны 3 элемента:

  • График ввода - создан из данных OSM для одной страны.
  • Процедура - преобразовывает входной график в выходной график
  • Выходной график - намного более простая версия входного графика без подробных узлов на каждой дороге. Он содержит только узлы и края городов / деревень, которые рассчитываются на основе дорог входного графика.

Я хотел бы создать выходной график из входного графика. Другими словами, мне нужен график, который позволил бы мне быстро рассчитать ответ на этот вопрос: если я начну с города 3 и поеду в город 7, в какой город / деревни я проеду? В этом примере ответы таковы:

  • Вы будете проезжать города / села: 5, 6, 7
  • Вы будете проезжать города / села: 2, 4, 6, 7
  • Вы будете проезжать города / села: 5, 4, 6, 7

Узлы города / деревни извлекаются из файла OSM. Ребра выходного графа должны иметь веса, рассчитанные на основе ребер входного графа. Вес - это расстояние (в метрах) от одного узла до следующего.

В исходном файле данных OSM (и во входном графике) узлы, которые описывают город или деревню, не связаны с ребрами дорог. То, что я вижу, я должен обработать этот график, выбрать только узлы, представляющие города и деревни, и затем попытаться сопоставить (основываясь на расстояниях от узла города / села до узлов дороги) и создать несколько ярлыков дорог, которые соединяют только узлы города / села.

Мои вопросы:

  • Это уже было сделано? Я не хочу дублировать чью-то работу.
  • как бы вы создали график вывода?

1 Ответ

1 голос
/ 09 июля 2012

Вы можете найти путь на основе алгоритмов маршрутизации.Для этого есть несколько программных реализаций, таких как osmand.Затем в данных OSM не ищите узлы, представляющие город, а вместо этого ищите административные границы (полигоны) городов.На этом этапе с классическим алгоритмом геометрии вы можете вычислить список пересечений между маршрутом и административными границами.

Этот подход решает вашу проблему, но не вычисляет упрощенный граф как промежуточный этап.Таким образом, он требует больше компьютеров для каждого запроса.

Я боюсь, что с помощью графика, составленного из дорог, существует огромное количество различных путей между двумя точками, проходящими, возможно, через все города в данныхв разных заказах.Таким образом, вам нужен некоторый критерий оптимизации для выбора небольшого количества трасс (короткое расстояние, короткое время в пути, отсутствие платы за проезд, живописные дороги и т. Д.).Что приводит к необходимости некоторого алгоритма маршрутизации, что приводит к приведенному выше решению ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...