Vairāk

Pgr_dijkstra paātrināšana, izmantojot PostGis2.0 ierobežojošo lodziņu


Es pirmo reizi izmantoju PostGIS, lai aprēķinātu attālumus starp diviem punktiem autoskolas rezervēšanas sistēmai, pie kuras strādāju. Esmu ielādējis visas Austrālijas kartes, taču manis uzrakstītā vaicājuma izpilde prasa labas 5-6 sekundes. Lielākā daļa braucienu ir ļoti īsi, tāpēc es domāju izmantot ierobežojošo lodziņu, bet šķiet, ka attiecīgā funkcija (dijkstra_sp_delta) ir novecojusi. Vai kādam ir ieskats, kā to īstenot vai paātrināt šāda veida funkcijas kopumā? Es vēlos samazināt vaicājuma laiku līdz 1 sekundei vai mazāk.

SELECT SUM ((SELECT ST_length (ST_Transform (the_geom, 28355)) FROM veidi w WHERE w.gid = id2)) kā distance_in_metres FROM pgr_dijkstra ('SELECT gid AS id, avots, mērķis, ST_length (ST_Transform (the_geom, 28355))/ 1000*60/maxspeed_forward AS izmaksas no ceļiem ”, 247201, 298103, nepatiesa, nepatiesa);

Schemy vienkārši izveidojiet izvēles vaicājuma būvēšanas rūtiņu vai iesaiņojiet pgr_dikstra funkcijā, kas

piem.

SELECT SUM ((SELECT ST_length (ST_Transform (the_geom, 28355)) FROM veidi w WHERE w.gid = id2)) kā distance_in_metres FROM pgr_dijkstra ('SELECT gid AS id, avots, mērķis, ST_length (ST_Transform (the_geom, 28355))/ 1000*60/maks.

Jums būs nedaudz jāpielāgo 0.01.