Hi all,

I’m using osm data to calculate time distances from one source node to multiple destinations. For this I’m using pgr_kdijkstraCost. Because I found a few results strange, I used pgr_dijkstra (and pgr_astar) to test total distances between a few nodes.

Given one source and one destination, I used this code to calculate total cost between two nodes

-----test1

select sum(cost) from

(SELECT seq, id1 AS node, id2 AS edge, cost FROM pgr_dijkstra(’

SELECT gid AS id,

source::integer,

target::integer,

length::double precision AS cost

FROM ways’,

97972,342392, false, false)) as foo;

*column “custo” was calculated using: custo = (60 * length) / (maxspeed_forward)

The result for test1 is 115 minutes.

Using pgr_kdijkstraCost with only one target (node 342392), the code is:

## -----test2

SELECT seq, id1 AS source, id2 AS target, cost FROM pgr_kdijkstraCost($$

SELECT gid AS id,

source::integer,

target::integer,

custo::double precision AS cost

FROM ways, classes c

WHERE class_id = c.id

$$,

97972, array[342392], false, false);

The result of test2 is 66388 minutes!

Using the same code with over 2 thousand targets, it runs smoothly, with a few strange results - as this one.

Perhaps there’s something obvious I’m missing.

Thanks in advance for any help.

António