#1 Sun 20 July 2014 22:18
- jack tippit
- Participant actif
- Lieu: Limoges
- Date d'inscription: 3 Dec 2008
- Messages: 116
- Site web
[postGIS][pgRouting] pgr_createTopology fail
Bonjour à tous,
J'avais fait quelques opérations il y a 3 ans avec pgRouting pour faire des cartes isochonique, mais visiblement de l'eau a coulé sous les ponts puisque les notes que j'avais prises à l'époque ne me permettent plus d'aboutir (J'avais à l'époque suivie le tuto d'Anita Graser (http://anitagraser.com/2011/02/07/a-beg … pgrouting/)).
J'ai donc fouillé un peut, mais surmène pas assez parce que je n'ai pas trouvé / compris d'où venait l'erreur :
J'ai importé mon shp dans posgreSQL forçant le fait que ce sont des données 2D en lambert93:
Code:
shp2pgsql -t 2D -s 2154 reseau_total_AOC.shp acces acces > acces.sql psql -f acces.sql -d geodb
je passe ensuite dans psql
-- ajouter des col "source" et "target" à la table
Code:
ALTER TABLE acces ADD COLUMN "source" integer; ALTER TABLE asses ADD COLUMN "target" integer;
et là rien ne va plus
Code:
geodb=> select pgr_createTopology('acces', 0.00001, 'geom', 'gid'); NOTICE: PROCESSING: NOTICE: pgr_createTopology('acces',1e-05,'geom','gid','source','target','true') NOTICE: Performing checks, pelase wait ..... NOTICE: -------> acces not found pgr_createtopology -------------------- FAIL (1 ligne)
j'ai donc essayé les commandes du blog d'Anita Graser en les mettant un peu au gout du jour
Code:
--tentative du blog d'Anita graser CREATE OR REPLACE VIEW road_ext AS SELECT *, ST_StartPoint(geom), ST_EndPoint(geom) FROM acces;
Mais ça me donne des colonnes vides ....
Dernière info, visiblement la géométrie de mes lignes est :
Code:
geom geometry(MultiLineString,2154)
J'ai cru comprendre que ça pouvait pauser problème du coup j'ai chercher à les convertir en LineString
Code:
CREATE TABLE way AS SELECT *, (ST_Dump(geom)) FROM acces
;
mais ça ne fonctionne pas mieux avec pgr_createTopology
Est-ce que vous pourriez me dire ce que j'ai oublié de faire ?
Version :
postGIS 2.1 et pgRouting 2 complier depuis github hier
Hors ligne
#2 Mon 21 July 2014 00:41
- jack tippit
- Participant actif
- Lieu: Limoges
- Date d'inscription: 3 Dec 2008
- Messages: 116
- Site web
Re: [postGIS][pgRouting] pgr_createTopology fail
Un petit bout de réponse sur le site de pgRouting http://workshop.pgrouting.org/chapters/ … _path.html ...
Note
A bug in a previous version of PostGIS didn’t allow the use of ST_startpoint or ST_endpoint.
From PostGIS 2.x ST_startpoint and ST_endpoint are only valid for LINESTRING geometry type and will fail with MULTILINESTING.
Therefor a slightly more difficult looking query is used. If the network data really contains multi-geomtery linestrings the query might give the wrong start and end point. But in general data has been imported as MULTILINESTING even if it only contains LINESTRING geometries.
Donc il y a effectivement un problème avec le type multiLine_string depuis postGIS 2 ...
Dernière modification par jack tippit (Mon 21 July 2014 00:42)
Hors ligne