I have a query which I use to find a route between two points. Even though the route is displayed good on the map the order I get from pgRouting is wrong.

The query is this one:

SELECT rt.gid, ST_AsGeoJSON(rt.the_geom) AS geojson, 
                   length(ST_transform(rt.the_geom,3785))as meters,x1,x2,y1,y2,name, ways.gid 
                FROM ways, 
                    (SELECT gid, the_geom 
                        FROM dijkstra_sp_delta(
                   ) as rt 
              WHERE ways.gid=rt.gid;

Do you know any way to take the segments of the route in right order?

  • I have found this thread here which seems to have the same problem as me lists.osgeo.org/pipermail/pgrouting-users/2010-April/… What i don't understand is why the segment is loading in reverse and how can i understand that . Also i can't understand the given solution so a little more detailed explanation would be much apriciated – john Oct 3 '12 at 16:58

Although you are using a different routing function but problem was the same I was facing and I hope this can help you out

try to order your result by sequence of your routing table. by doing that you will get your road segments in right order this is what i am doing this:

SELECT pt.gid, seq, id1 AS node, id2 AS edge, cost, geom as line FROM pgr_dijkstra('SELECT 
  gid as id, 
  shape_leng::float8 as cost
  FROM my_table',

1543, 186, false, false ) as di JOIN my_table pt ON di.id2 = pt.gid ) order by seq But when I tried to draw this route on the map for my mobile app (Android) as a complete route, road segments where not in the right order. Then I merged all the road segments as a single feature by using


and the result was perfect

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.