Estou construindo um sistema de planejamento de rota, mas ainda tenho que decidir qual mecanismo de roteamento subjacente vou usar. Até agora eu encontrei pgrouting e neo4j.
Eu tenho minha rede de rotas em um banco de dados postgresql / postgis (importado de um shapefile). Fiz consultas para extrair nós (pontos finais de maneiras em que você deve tomar uma decisão em que direção seguir ou sem saída) e para extrair arestas (geralmente compostas por várias maneiras consecutivas). Todas as minhas arestas são bidirecionais.
Meu principal objetivo é calcular rotas nesta rede usando um algoritmo A-star em que distance = cost.
Meu sentimento me diz que um banco de dados de gráficos como o neo4j é o caminho a seguir (como parece ser feito para esse fim), mas eles não parecem suportar a estrela A por padrão e também não há um senso real de geometria . Parece mais adequado para redes sociais em vez de mapas.
- O pgrouting atenderia minhas necessidades?
- É rápido o suficiente para consultas dinâmicas (+ -2000 nós, + -4000 arestas)? Normalmente, isso seria alguns ms para a estrela A, mas não tenho certeza sobre essa implementação no sql.
- O pgrouting A-star me fornece uma lista de nós e arestas?
- Na maioria dos exemplos que vejo sobre pgrouting, noto que geralmente existe uma lista de comandos após o cálculo da rota (como "No X, vire à esquerda, etc"). O pgrouting produz isso ou é de outro sistema?
Espero que alguém possa me dar algumas informações sobre qual sistema escolher. Neo4j, pgrouting ou algum outro sistema.