Eu quero executar o algoritmo de caminho mais curto em vários pares de origem e destino de uma só vez e obter um resultado como uma tabela e processá-lo então.
Como eu faço isso? Esta consulta não funciona:
SELECT a.source, a.target, paths.*
FROM all_to_all a, shortest_path_astar('...', a.source, a.target, false, false) paths;
ERROR: function expression in FROM cannot refer to other relations of same query level
(aliás, all_to_all não significa literalmente tudo para todos :) são apenas alguns pares aleatórios)
Isso também não funciona:
SELECT *
FROM all_to_all a, (
SELECT * FROM shortest_path_astar('...', a.source, a.target, false, false) yyy
) AS t2;
postgis
postgresql
routing
pgrouting
culebrón
fonte
fonte
Respostas:
Algo como
fonte
Aqui está uma consulta que retorna todos os segmentos para todas as combinações de origem e destino:
Incrível, inconsistente com a sintaxe SQL, mas funciona!
fonte