#1 Wed 30 August 2006 23:37
- davidtecher
- Participant occasionnel
- Date d'inscription: 8 Sep 2005
- Messages: 15
PgDijkstra et GEOROUTE de l'IGN
Bonjour à tous,
Débutant avec PgDijkstra et ayant reçu un jeu de test/évaluation de l'IGN, j'ai voulu essayer le code du routing PgDijkstra sur la base GEOROUTE (fichier TRONCON_ROUTE.SHP) (sous répertorie GEOROUTE/NAVIGATION) que j'ai importé dans une base PostGIS.
Je vous envois ce message pour avoir un retour d'expérience sur l'utilisation de PgDijkstra sur GEOROUTE et savoir comment
vous avez fait car avec la colonne "sens" qui peut prendre 3 valeurs:
- Double sens
- Sens direct
- Sens inverse
j'ai eu du mal à savoir que mettre pour les cost et les reverse_cost.
J'ai envoyé un mail sur la liste de cartoweb-user mais aucun retour
J'aimerais donc connaitre les requêtes SQL que vous avez utilisez (je joint les miennes à ce message)
D'avance merci et bonne continuation à tous et désolé pour la longueur du message
--david;
----------------------------------------------
PostGIS.fr http://www.postgis.fr
DavidGIS http://01map.hd.free.fr
----------------------------------------------
=================================================================================
===============================================================================
begin;
/*
Ajouter les colonnes adéquates
*/
alter table troncon_route add column source_id int4;
alter table troncon_route add column target_id int4;
alter table troncon_route add column edge_id int4;
/*
Mettre à jour le srid=1 sinon pgdijkstra gueule 8-(
*/
select updategeometrysrid('troncon_route','the_geom',-1);
SELECT assign_vertex_id('troncon_route',0.1);--(select min(length(the_geom)) from troncon_route));
end;
begin;
/*
créer un table temporaire pour éliminer les doublons "(source,target)"
*/
create temporary table troncon_route_tmp as select * from troncon_route where gid in (select gid from (select DISTINCT on (source_id, target_id) source_id, gid from troncon_route) as doublon);
/*
Vider la table cible
*/
delete from troncon_route;
/*
Ok...On fait le dump
*/
insert into troncon_route (select * from troncon_route_tmp);
/*
Ok...Je crée mon graphe
*/
SELECT create_graph_tables('troncon_route', 'int4');
SELECT update_cost_from_distance('troncon_route');
/*
Tout ce qui est à double sens je le garde
*/
update troncon_route_edges set reverse_cost=cost;
/*
On s'occupe des voies à sens direct ou inverse
*/
update troncon_route set source_id=target_id where sens='Sens inverse';
update troncon_route_edges set source=target,target=source,reverse_cost=reverse_cost+7000000
where
source in (select distinct id from troncon_route_vertices where geom_id in (select distinct source_id from troncon_route where sens='Sens inverse'))
and
target in (select distinct id from troncon_route_vertices where geom_id in (select distinct target_id from troncon_route where sens='Sens inverse'));
;
update troncon_route_edges set
reverse_cost=reverse_cost+7000000
where
source in (select distinct id from troncon_route_vertices where geom_id in (select distinct source_id from troncon_route where sens='Sens direct'))
and
target in (select distinct id from troncon_route_vertices where geom_id in (select distinct target_id from troncon_route where sens='Sens direct'));
end;
Dernière modification par davidtecher (Wed 30 August 2006 23:43)
Hors ligne
#2 Tue 03 October 2006 10:22
Re: PgDijkstra et GEOROUTE de l'IGN
Bonjour,
J'avais vu passer votre post sur la liste CartoWeb mais n'ayant jamais testé ce plugin je ne vous serai d'aucune aide. Par contre, vous pouvez retenter votre chance sur la liste CartoWeb qui est assez active en générale mais certains messages ne recoivent pas de réponse .... au premier post !
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Mon 12 March 2007 10:41
- llby
- Participant occasionnel
- Date d'inscription: 14 Dec 2005
- Messages: 49
Re: PgDijkstra et GEOROUTE de l'IGN
Bonjour,
Avez-vous eu des retours d'information sur ce sujet ? ll m'intéresse beaucoup.
Hors ligne