Sto costruendo un sistema di pianificazione del percorso, ma devo ancora decidere quale motore di routing sottostante userò. Finora ho trovato pgrouting e neo4j.
Ho la mia rete di rotte in un database postgresql / postgis (importato da un file di forma). Ho fatto delle domande per estrarre i nodi (punti finali dei modi in cui devi decidere quale direzione prendere o vicoli ciechi) e per estrarre i bordi (spesso costituiti da più modi consecutivi). Tutti i miei bordi sono bidirezionali.
Il mio obiettivo principale è calcolare i percorsi su questa rete usando un algoritmo A-star dove distance = cost.
La mia sensazione mi dice che un database grafico come Neo4j è la strada da percorrere (in quanto sembra essere fatto proprio per questo scopo), ma non sembrano supportare A-star di default e inoltre non c'è un vero senso della geometria . Sembra più adatto ai social network anziché alle mappe.
- Il pgrouting soddisferebbe i miei bisogni?
- È abbastanza veloce per le query al volo (+ -2000 nodi, + -4000 bordi)? Normalmente questo sarebbe un paio di ms per A-star, ma non sono sicuro di questa implementazione in sql.
- P-staring A-star mi dà un elenco di nodi e bordi?
- Nella maggior parte degli esempi che vedo sul pgrouting noto che di solito c'è un elenco di comandi dopo il calcolo del percorso (come "Alla X svolta a sinistra, ecc"). La pgrouting produce questo o proviene da un altro sistema?
Spero che qualcuno possa darmi alcune informazioni su quale sistema scegliere. Neo4j, pgrouting o qualche altro sistema.