[pgrouting-users] pass query results to routing function
Hugh Kelley
hghklly at gmail.com
Mon May 9 13:56:19 PDT 2022
thanks Imre, I had looked at that but hadn't seen this query in the
examples showing how it's meant to be structured. That's exactly what I
needed.
SELECT * FROM pgr_dijkstra(
'SELECT id, source, target, cost, reverse_cost FROM edge_table',
'SELECT * FROM (VALUES (2, 3), (2, 5), (11, 3), (11, 5)) AS
combinations (source, target)');
On Mon, May 9, 2022 at 4:41 PM Imre Samu <pella.samu at gmail.com> wrote:
> Hi Hugh,
>
> > ... query that calculates routes between pairs of nodes that is a
> subset of all the possible pairs in the network.
>
> *Have you tried the "combinations SQL" method?*
> https://docs.pgrouting.org/latest/en/pgr_dijkstra.html#combinations
> SELECT * FROM pgr_dijkstra(
> 'SELECT id, source, target, cost, reverse_cost FROM edge_table',
> * 'SELECT * FROM combinations_table',*
> FALSE
> );
>
> Regards,
> Imre
>
>
>
>
>
> Hugh Kelley <hghklly at gmail.com> ezt írta (időpont: 2022. máj. 9., H,
> 21:43):
>
>> To follow up, the structure below seems to work fairly well for this.
>> would still be curious to see better options if anyone knows of any.
>>
>> This is a little awkward since it ends up returning a results table
>> that's a single column that's a pseudo type record.
>>
>> drop table if exists scratch.routing_pairs;
>>
>> create table scratch.routing_pairs as (
>> select
>> dp1.tdg_id as origin_id,
>> dp1.nearest_net_node as origin_node,
>> dp2.tdg_id as dest_id,
>> dp2.nearest_net_node as dest_node
>> from
>> automated.doors_and_parking dp1
>> left join automated.doors_and_parking dp2 on
>> st_dwithin(dp1.geom, dp2.geom, 250)
>> limit
>> 100
>> );
>>
>> select
>> pgr_dijkstra(
>> 'SELECT tdg_id as id, source, target, length_cost as cost FROM
>> automated.ped_network as edge_table where source is not null and target is
>> not null',
>> origin_node,
>> dest_node,
>> false
>> )
>> from
>> scratch.routing_pairs
>> ;
>>
>> On Mon, May 9, 2022 at 3:22 PM Hugh Kelley <hghklly at gmail.com> wrote:
>>
>>> Hi,
>>>
>>>
>>> I'm wondering if anyone has an example of a query that calculates routes
>>> between pairs of nodes that is a subset of all the possible pairs in the
>>> network.
>>>
>>> I have a network with ~5297 nodes, for ~28 million possible pairs. I
>>> could calculate routes for all of these pairs and then use the subset of
>>> routes that i need, but it seems that there could be a way to calculate
>>> only routes for the ~17 thousand pairs I actually care about. If possible
>>> I would filter to only calculate pairs where the origin node is
>>> ST_DWITHIN(a.geom, b.geom, 250), for example.
>>>
>>> is there a way to pass the results of a query to the pgr_dijkstra()
>>> function? I haven't seen an example of that as I've read through the docs.
>>> is there a way to apply a condition like st_diwthin() to the arrays passed
>>> to the function?
>>>
>>> thanks for any advice or suggestions, hope everyone's week is off to a
>>> good start.
>>>
>>> Hugh
>>>
>>
>>
>> --
>> Hugh Kelley
>>
>> _______________________________________________
>> Pgrouting-users mailing list
>> Pgrouting-users at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/pgrouting-users
>>
> _______________________________________________
> Pgrouting-users mailing list
> Pgrouting-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/pgrouting-users
>
--
Hugh Kelley
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pgrouting-users/attachments/20220509/170ed37b/attachment.htm>
More information about the Pgrouting-users
mailing list