[pgrouting-users] Calculating the shortest way between pairs

Carsten Hogertz carsten.hogertz at gmail.com
Fri Mar 14 08:57:14 PDT 2014


puh, not the simplest task for a non-developer....I mean the function.
to get a result with for one row is no problem (using whatever pg_*())


2014-03-14 16:33 GMT+01:00 Stephen Woodbridge <woodbri at swoodbridge.com>:

> Hi Carsten,
>
> I assume you can make a single pgRouting query from point A to B using
> pgr_astar() or pgr_trsp() or something similar.
>
> Work that out first. Read the Documentation and the workshop.
>
> Then you just want to write a simple procedure to query your table and for
> each row run the pgr_*() query and do something with the results.
>
> https://www.google.com/#newwindow=1&q=postgres%20plpgsql%20tutorial
>
> Read these to get a basic understanding ot plpgsql sripting for stored
> procedures.
>
> If you table is big it will take a while. Get this working first and then
> we can talk about how to speed it up if you need that.
>
> -Steve
>
>
> On 3/14/2014 11:00 AM, Carsten Hogertz wrote:
>
>> lol. Now we're talking about the same issue!
>> I could run n x n queries but this would not be very efficient as I'd
>> like to have a more "automatic" solution.
>>
>> I already thought about function and looping but as being a complete
>> newbie on looping and writing functions this seems quite hard to solve
>> for myself.
>>
>> Maybe you've got a hint?
>>
>> thanks
>> carsten
>>
>>
>>
>> 2014-03-14 15:53 GMT+01:00 Daniel Kastl <daniel at georepublic.de
>> <mailto:daniel at georepublic.de>>:
>>
>>
>>
>>
>>
>>     On Fri, Mar 14, 2014 at 11:42 PM, Carsten Hogertz
>>     <carsten.hogertz at gmail.com <mailto:carsten.hogertz at gmail.com>> wrote:
>>
>>         Hi Daniel,
>>         thanks for your eMail.
>>         Well, I think it's not a 1-n calculation. IMHO it's a 1-1
>>         calculation,right?
>>         So I don't know how to calculate the distance for each row of
>>         the routing_pair table.
>>
>>
>>     Well, you need to run this query for each row. So with n rows you
>>     need n queries.
>>     If you use standard shortest path function you need to run "n x n"
>>     queries.
>>
>>     You may want to write a custom function, which makes first a select
>>     of all records in your table and then loops through these records.
>>     Or don't I still understand the problem?
>>
>>     Daniel
>>
>>
>>
>>
>>         Thanks
>>         Carsten
>>
>>
>>         2014-03-14 15:33 GMT+01:00 Daniel Kastl <daniel at georepublic.de
>>         <mailto:daniel at georepublic.de>>:
>>
>>
>>
>>
>>
>>             On Fri, Mar 14, 2014 at 11:26 PM, Carsten Hogertz
>>             <carsten.hogertz at gmail.com
>>             <mailto:carsten.hogertz at gmail.com>> wrote:
>>
>>                 Maybe to clearify.
>>
>>                 I've got the following two tables:
>>
>>                 Table at_2po_4pgr with the columns:
>>
>>                    id integer NOT NULL,
>>                    osm_id bigint,
>>                    osm_name character varying,
>>                    osm_meta character varying,
>>                    osm_source_id bigint,
>>                    osm_target_id bigint,
>>                    clazz integer,
>>                    flags integer,
>>                    source integer,
>>                    target integer,
>>                    km double precision,
>>                    kmh integer,
>>                    cost2 double precision,
>>                    reverse_cost double precision,
>>                    x1 double precision,
>>                    y1 double precision,
>>                    x2 double precision,
>>                    y2 double precision,
>>                    geom_way geometry(LineString,4326)
>>
>>                 and Table routing_pair with the columns:
>>
>>                    id integer,
>>                    h_key integer,
>>                    lat_htl double precision,
>>                    lon_htl double precision,
>>                    source integer,
>>                    geom_htl geometry(Point,4326),
>>                    lat_bhf double precision,
>>                    lon_bhf double precision,
>>                    target integer,
>>                    geom_bhf geometry(Point,4326)
>>
>>
>>                 The routing_pair table hold three important information:
>>                 ID
>>                 SOURCE
>>                 TARGET
>>
>>                 All columns are filled (source + target are calculated
>>                 from at_2po_4pgr.
>>
>>                 The task seems to be quite simple: I want for each row
>>                 from the routing_pair the distance between soure +
>>                 target (and if possible its geom).
>>                 Could you please help me how to solve this?
>>
>>
>>             Hi Carsten,
>>
>>             There is a function named kDijkstra and it allows you to
>>             calculate all paths from one node to many:
>>             http://docs.pgrouting.org/2.0/en/src/kdijkstra/doc/index.
>> html#pgr-kdijkstra
>>
>>             If something is not clear with the page above, feel free to
>> ask.
>>
>>             Daniel
>>
>>
>>
>>
>>
>>             --
>>             Georepublic UG & Georepublic Japan
>>             eMail: daniel.kastl at georepublic.de
>>             <mailto:daniel.kastl at georepublic.de>
>>
>>             Web: http://georepublic.info
>>
>>             _______________________________________________
>>             Pgrouting-users mailing list
>>             Pgrouting-users at lists.osgeo.org
>>             <mailto:Pgrouting-users at lists.osgeo.org>
>>
>>             http://lists.osgeo.org/mailman/listinfo/pgrouting-users
>>
>>
>>
>>         _______________________________________________
>>         Pgrouting-users mailing list
>>         Pgrouting-users at lists.osgeo.org
>>         <mailto:Pgrouting-users at lists.osgeo.org>
>>
>>         http://lists.osgeo.org/mailman/listinfo/pgrouting-users
>>
>>
>>
>>
>>     --
>>     Georepublic UG & Georepublic Japan
>>     eMail: daniel.kastl at georepublic.de <mailto:daniel.kastl@
>> georepublic.de>
>>
>>     Web: http://georepublic.info
>>
>>     _______________________________________________
>>     Pgrouting-users mailing list
>>     Pgrouting-users at lists.osgeo.org <mailto:Pgrouting-users at lists.
>> osgeo.org>
>>
>>     http://lists.osgeo.org/mailman/listinfo/pgrouting-users
>>
>>
>>
>>
>> _______________________________________________
>> Pgrouting-users mailing list
>> Pgrouting-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/pgrouting-users
>>
>>
> _______________________________________________
> Pgrouting-users mailing list
> Pgrouting-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pgrouting-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pgrouting-users/attachments/20140314/f424dc14/attachment-0001.html>


More information about the Pgrouting-users mailing list