[pgrouting-dev] Returning the correct edge id from boost_dijkstra_* functions

Stephen Woodbridge woodbri at swoodbridge.com
Fri Jul 1 14:38:15 EDT 2011


Hi Daniel and Anton,

Thanks for the wiki page. I just replaced the code there with a newer 
version that is much cleaner and more readable. Seems like it should be 
faster also, but I have not run any tests. The changes get rid of a 
bunch of the template prototypes so it is more readable and more compact 
and it now uses std::copy to copy the results to the C path array.

I got a lot of help from Alex on the boost list. My knowledge of C++ is 
greatly lacking :( but I found that this exercise was extremely educational.

-Steve



On 7/1/2011 12:46 AM, Daniel Kastl wrote:
> Hi Steve,
>
> Thank you! But I also rely on Anton's skills here.
> Not to get lost in the mailing list archive, I copied the code and links
> to this Wiki page:
> https://github.com/pgRouting/pgrouting/wiki/Revision-of-return-results
>
> It's part of the 2.0 plan. If you have more ideas or request, feel free
> to add them there:
> https://github.com/pgRouting/pgrouting/wiki/2.0-Development-Plan
>
> Daniel
>
>
> 2011/7/1 Stephen Woodbridge <woodbri at swoodbridge.com
> <mailto:woodbri at swoodbridge.com>>
>
>     Anton, Daniel,
>
>     I have been fighting with the dijkstra results because we do not
>     return things like the parent id of a path and we definitely do not
>     return the correct edge ids.
>
>     So with some help from the boost users list and banging my head
>     against the C++ wall, being only a C programmer :), I have some code
>     that works for me.
>
>     http://pastebin.com/qa1caiXs
>
>     In dijkstra.h I also have defined the following structs:
>
>     typedef struct edge
>     {
>         int id;
>         int source;
>         int target;
>         float8 cost;
>         float8 rcost;
>     } edge_t;
>
>     typedef struct path_element
>     {
>         int vertex_id;
>         int parent_id;
>         int edge_id;
>         float8 cost;
>     } path_element_t;
>
>     You should be able to copy the appropriate parts of this file and
>     update the driving distance code and the low level dijkstra code to
>     return more correct and useful results. I'm using this code outside
>     of the postgresql server, but it should not require any significant
>     changes. Since I'm not developing code in the database, I will leave
>     that as an exercise for you guys to work out and test.
>
>     Thanks,
>       -Steve
>     ______________________________ _________________
>     pgrouting-dev mailing list
>     pgrouting-dev at lists.osgeo.org <mailto:pgrouting-dev at lists.osgeo.org>
>     http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev
>     <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>
>
>
>
>
> --
> Georepublic UG & Georepublic Japan
> eMail: daniel.kastl at georepublic.de <mailto:daniel.kastl at georepublic.de>
> Web: http://georepublic.de <http://georepublic.de/>
>
>
>
> _______________________________________________
> pgrouting-dev mailing list
> pgrouting-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pgrouting-dev



More information about the pgrouting-dev mailing list