[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