I'm trying to add a route layer to mapserver but I can't solve a problem.
This works in my database:
SELECT *
FROM arcos
JOIN
(
SELECT * FROM shortest_path('
SELECT id,
source::int4 AS source,
target::int4 AS target,
length*estado_actual.custo AS cost
FROM arcos, estado_actual
where arcos.estado_a = estado_actual.id_ea',
438,439,false,false)) AS rota
ON
arcos.id = rota.edge_id
So, in mapfile I add this:
DATA the_geom from
(SELECT *
FROM arcos
JOIN
(
SELECT * FROM shortest_path('
SELECT id,
source::int4 AS source,
target::int4 AS target,
length*estado_actual.custo AS cost
FROM arcos, estado_actual
where arcos.estado_a = estado_actual.id_ea',
438,439,false,false)) AS rota
ON
arcos.id = rota.edge_id) using unique id2
But don't work. I simulate the query in my database replacing DATA for SELECT and I got this error:
ERROR: subquery in FROM must have an alias
LINE 6: (SELECT *
And I try again like this:
select the_geom from
(SELECT *
FROM arcos
JOIN
(
SELECT * FROM shortest_path('
SELECT id,
source::int4 AS source,
target::int4 AS target,
length*estado_actual.custo AS cost
FROM arcos, estado_actual
where arcos.estado_a = estado_actual.id_ea',
438,439,false,false)) AS rota
ON
arcos.id = rota.edge_id) as foo using unique id2
And give me this error:
ERROR: syntax error at or near "using"
LINE 19: arcos.id = rota.edge_id) as foo using unique id2
Can anyone tell me how to solve this problem in the query?
Thanks
On 11-06-2012 19:08, Stephen Woodbridge wrote:
This page is in error:
http://www.pgrouting.org/docs/howto/mapserver.html
The result of the dijkstra_sp() function returns a record set like:
vertex_id | edge_id | cost
which does not contain a geometry column.
To get the geometry column which is in your dourol table you need to
join the results back to that table, change you DATA statement to
something like:
DATA "the_geom from (
select b.the_geom, a.* from
(SELECT * FROM shortest_path('SELECT gid AS id, source::int4,
target::int4, length::double precision AS cost,
FROM dourol',3, 7, false, false)) as a
dourol b where a.edge_id=b.gid) AS
foo using unique gid using srid=-1"
Also for what it is worth, if you are also using OpenLayers, I
typically write a simple PHP ajax handler to interact with postgresql
and format the results as XML or JSON then use an OpenLayers geometry
feature to display the route. This way I compute the route once and
can pan an zoom on the result in OpenLayers without having to requext
a new route until I want to change the route. Look at this page to get
some ideas:
http://gis.imaptools.com/routing/leaddog/?zoom=11&lat=33.86651&lon=35.51184&layers=B0TTTF&start=35.493583%2033.826664&stop=35.565174%2033.864285&method=STS&lang=eng
-Steve W
On 6/11/2012 1:59 PM, Pedro Costa wrote:
Thank you to all.
I resolved with a where statement but i also will try using '-1'.
I have another question, anybody know examples of using pgrouting with
mapserver?
Or know information about that....
Thanks
On 06/11/2012 06:05 PM, Max Weninger wrote:
Hi
On Mon, 11 Jun 2012 11:03:33 -0400
Stephen Woodbridge<woodbri@swoodbridge.com> wrote:
I'm pretty sure TRSP allows -1 for a cost and drops that edge
internally.
Yes
If you look at the code starting at line 361
Edges are only "used" if>=0.0
...
if(cur_edge.m_dCost>= 0.0)
...
if(cur_edge.m_dReverseCost>= 0.0)
...
Regards
max
-Steve W
On 6/11/2012 10:45 AM, James David Smith wrote:
Hi Pedro,
Could you someone temporarily remove the roads from the network
instead? When you do the select statement to query your network, you
could do a WHERE statement which ignores certain roads?
Might not work, just thinking out loud....
James
On 11 June 2012 15:40, Pedro Costa<pedrocostaarma@sapo.pt> wrote:
Em 11-06-2012 15:38, Steve Horn escreveu:
high cost (such as 99999999
Hello Steve,
With me the hight cost is a problem because my network have few
roads....
_______________________________________________
Pgrouting-users mailing list
Pgrouting-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-users
_______________________________________________
Pgrouting-users mailing list
Pgrouting-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-users
_______________________________________________
Pgrouting-users mailing list
Pgrouting-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-users
_______________________________________________
Pgrouting-users mailing list
Pgrouting-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-users
_______________________________________________
Pgrouting-users mailing list
Pgrouting-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-users
_______________________________________________
Pgrouting-users mailing list
Pgrouting-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-users