I have osm data imported into PostgreSQL with osm2po tool (wich makes the data routable). Also I have imported data relationed with nodes and node_tags with osmosis tool.
I need to obtain a set of nearest nodes from a given location (maybe 30 or 40). Then I need to calculate the shortest path from the given node from each others. It means to execute shortes_path query multiple times in a row, wich takes about 2 seconds (1 query 2 seconds: 30 queries 60 -> too long).
SELECT * FROM shortest_path('
SELECT id AS id,
source::int4 AS source,
target::int4 AS target,
cost::float8 AS cost
FROM tt_2po_4pgr',
275742,
274494,
false,
false)
What would be the best way to do this in a reasonable time?
Thank in advance!
Pd: excuse my english
Edited:
In accordance to dkastl answer, I tried with wrapper functions and effectively I obtain better results 2 or 3 times better, but isn't acceptable for me yet.
With the following query:
explain analyze SELECT *
FROM dijkstra_sp_delta('dr_2po_4pgr', 278174, 289786, 0.3);
I obtain this results: explain