Я строю систему планирования маршрута, но мне еще предстоит решить, какой базовый механизм маршрутизации я буду использовать. До сих пор я нашел pgrouting и neo4j.
У меня есть сеть маршрутов в базе данных postgresql / postgis (импортирована из шейп-файла). Я сделал запросы, чтобы извлечь узлы (конечные точки, где вы должны принять решение, в каком направлении идти или тупики) и извлечь края (часто составленные несколькими последовательными способами). Все мои ребра двунаправлены.
Моя главная цель - рассчитать маршруты в этой сети, используя алгоритм A-star, где расстояние = стоимость.
Мои ощущения подсказывают мне, что база данных графов, такая как neo4j, является подходящим способом (как кажется, она создана именно для этой цели), но они, по-видимому, не поддерживают A-star по умолчанию, а также не имеют реального смысла геометрии. , Кажется, лучше подходит для социальных сетей вместо карт.
- Будет ли pgrouting удовлетворить мои потребности?
- Это достаточно быстро для запросов на лету (+ -2000 узлов, + -4000 ребер)? Обычно это будет несколько мс для A-star, но я не уверен насчет реализации в sql.
- Дает ли pgrouting A-star список узлов и ребер?
- В большинстве примеров, которые я вижу о pgrouting, я замечаю, что обычно есть список команд после расчета маршрута (например, «При повороте влево и т. Д.»). Производит ли pgrouting это или это из другой системы?
Надеюсь, кто-нибудь может дать мне некоторую информацию о том, какую систему выбрать. Neo4j, pgrouting или какая-то другая система.