Я будую систему планування маршрутів, але мені ще належить вирішити, який основний двигун маршрутизації я буду використовувати. Поки що я знайшов pgrouting та neo4j.
Я маю свою маршрутну мережу в базі даних postgresql / postgis (імпортовано з форм-файлу). Я зробив запити для вилучення вузлів (кінцевих точок способів, коли вам потрібно прийняти рішення, в якому напрямку рухатися або тупиків) та витягнути краї (часто складаються кількома послідовними способами). Усі мої краї двосторонні.
Моя основна мета - обчислити маршрути в цій мережі, використовуючи алгоритм зірки A, де відстань = вартість.
Моє відчуття говорить про те, що база даних графіків на зразок neo4j - це шлях (як здається, зроблений саме для цієї мети), але вони, схоже, не підтримують A-зірку за замовчуванням, а також немає справжнього геометричного відчуття . Здається, краще підходить для соціальних мереж замість карт.
- Чи могло б pgrouting задовольнити мої потреби?
- Це досить швидко для запитів на льоту (+ -2000 вузлів, + -4000 ребер)? Зазвичай це буде декілька мс для A-зірки, але я не впевнений у цій реалізації на sql.
- Чи надає мені pgrouting A-star список вузлів та ребер?
- У більшості прикладів, які я бачу щодо pgrouting, я помічаю, що зазвичай існує список команд після обчислення маршруту (наприклад, "На X повернути ліворуч тощо"). Чи виробляє це пророщування це чи це з іншої системи?
Сподіваюся, хтось може дати мені трохи інформації про те, яку систему вибрати. Neo4j, pgrouting або інша система.