[pgrouting-users] Calculating the shortest way between pairs
Daniel Kastl
daniel at georepublic.de
Fri Mar 14 09:00:03 PDT 2014
On Sat, Mar 15, 2014 at 12:57 AM, Carsten Hogertz <carsten.hogertz at gmail.com
> wrote:
> 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_*())
>
Of course you don't need to write a plpgsql function.
You can also make n queries with your programming language of your choice.
But with pgRouting it's common that you always need to code at least a
little bit.
Daniel
>
>
> 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
>>
>
>
> _______________________________________________
> Pgrouting-users mailing list
> Pgrouting-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pgrouting-users
>
--
Georepublic UG & Georepublic Japan
eMail: daniel.kastl at georepublic.de
Web: http://georepublic.info
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pgrouting-users/attachments/20140315/686df278/attachment.html>
More information about the Pgrouting-users
mailing list