Importer les routes de GeoBase 2010
Prérequis
1. Se créer un compte sur http://www.geobase.ca/
2. Installer geobase2osm.py, python-shapely et python-gdal
svn checkout http://svn.openstreetmap.org/applications/utils/import/geobase2osm sudo apt-get install python-gdal python-shapely
Importer
1. Importer le fichier nrn_rrn_qc_gml_en.zip de geobase (en se connectant avec son compte) Québec National Road (GML) 2. Extraire le fichier GML unzip nrn_rrn_qc_gml_en.zip NRN_QC_2_0_GEOM.gml 3. Sélectionner la portion des routes (c'est mieux d'exporter un rectangle) # voici une zone déjà importée # -74W 45.96N, -77W 48N # echo "POLYGON((-74 45.96, -77 45.96, -77 48, -74 48, -74 45.96))" > 74W45.96N-77W48N.txt # 4. Exporter en fichier osm python geobase2osm/geobase2osm.py -o out.osm -b 74W45.96N-77W48N.txt -e Result.jml -i NRN_QC_2_0_GEOM.gml # 4.1 si vous avez l'erreur suivante: # ERROR 6: Unable to load PROJ.4 library (libproj.so), creation of OGRCoordinateTransformation failed. # ajouter un lien symbolique dans /usr/lib (en root) et refaire la commande ln -s /usr/lib/libproj.so.0 /usr/lib/libproj.so # attendre longtemps...
Importer des données de GeoBase 2009
1. Installer Postgres avec postgresql-8.3-postgis. apt-get install postgresql-8.3-postgis 2. Créer une base de données et ajouter les références géomatiques su - su - postgres createdb gis psql gis < /usr/share/postgresql-8.3-postgis/lwpostgis.sql psql gis < /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql 3. Obtenir le script de conversion d'OSM : Osm2pgsql. # apt-get install libgeos-dev # pour make: geos-config : commande introuvable # svn co http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/ # cd osm2pgsql # make apt-get install osm2pgsql 4. Se créer un compte sur http://www.geobase.ca/ et importer les données Québec National Road - shapefile et Québec National Road (GML) 5. Aller sur openstreetmap.org et télécharger les données. 5.1 Aller sur le site 5.2 Rechercher une ville 5.3 Afficher la ville 5.4 Choisir un niveau de zoom élevé (exemple: zoom 12) 5.5 Cliquer sur Exporter 5.6 Choisir le format OpenStreetMap XML Data 5.7 Cliquer sur le bouton Export et enregistrer le fichier. On peut renommer le fichier map.osm ensuite. 6. Importer le fichier osm su - su - postgres mkdir osm cd osm cp /usr/share/osm2pgsql/default.style . osm2pgsql -l -d gis ../map.osm ## sortie ## osm2pgsql SVN version 0.66- Using projection SRS 4326 (Latlong) Setting up table: planet_osm_point Setting up table: planet_osm_line Setting up table: planet_osm_polygon Setting up table: planet_osm_roads Mid: Ram, scale=10000000 Reading in file: ../geo.osm Processing: Node(1k) Way(0k) Relation(0k) Node stats: total(1180), max(281129234) Way stats: total(13), max(25774026) Relation stats: total(0), max(0) Writing way(0k) Writing rel(0k) Committing transaction for planet_osm_line Sorting data and creating indexes for planet_osm_line Committing transaction for planet_osm_point Committing transaction for planet_osm_polygon Committing transaction for planet_osm_roads Sorting data and creating indexes for planet_osm_point Sorting data and creating indexes for planet_osm_polygon Sorting data and creating indexes for planet_osm_roads Completed planet_osm_point Completed planet_osm_polygon Completed planet_osm_line Completed planet_osm_roads ## fin de la sortie ## 7. Extraire et importer les fichiers shapefile NRN de Geobase. cd .. mkdir geobase cd geobase unzip ../nrn_rrn_qc_shp_en.zip # for quebec, you need to convert iso-8859-1 to utf-8 before inserting the row inside a UTF-8 databases shp2pgsql -s 4326 NRN_QC_2_0_ROADSEG nrn_roadseg > nrn_roadseg.sql iconv -f iso88591 -t utf8 nrn_roadseg.sql > nrn_roadseg.utf8.sql psql -d gis -f nrn_roadseg.utf8.sql # attendre longtemps 8. Créer un fichier avec les fonctions d'importation. su - postgres cat > import.function.sql <<'EOF' DROP TYPE nrn_data; CREATE TYPE nrn_data AS ( gid integer, the_geom geometry, nid text, rtename1en text, l_stname_c text, l_placenam text ); CREATE OR REPLACE FUNCTION select_nrn_roadtile(coordinates text) RETURNS SETOF nrn_data AS $$ SELECT gid,ST_Transform(the_geom,3348),nid, rtename1en, l_stname_c,l_placenam FROM nrn_roadseg WHERE ST_Intersects(ST_Transform(the_geom,4326), ST_GeomFromEWKT($1)) $$ LANGUAGE SQL; CREATE TYPE osm_data AS ( way geometry, osm_id integer, name text ); CREATE OR REPLACE FUNCTION select_osm_roadtile(coordinates text) RETURNS SETOF osm_data AS $$ SELECT ST_Transform(way,3348),osm_id,substr(name,0,80) FROM planet_osm_line WHERE ST_Intersects(way,ST_GeomFromEWKT($1)) AND highway is not null $$ LANGUAGE SQL; EOF # TODO: ces fonctions ne peuvent pas être créées si les données ne sont pas importées! psql -d gis -f import.function.sql 9. sélectionner la zone voulue pour les deux tables (OSM et NRN) # voici une commande pour avoir le polygone du fichier geo.osm exporté sur openstreetmap.org. head -n3 geo.osm | tail -1 | sed 's/<bounds minlat="\([^"]*\)" minlon="\([^"]*\)" maxlat="\([^"]*\)" maxlon="\([^"]*\)"\/>/POLYGON((\4 \1, \2 \1, \2 \3, \4 \3, \4 \1))/' pgsql2shp -f OSM.shp gis "select * FROM select_osm_roadtile('SRID=4326;POLYGON((-75.3244 46.4583, -75.6704 46.4583, -75.6704 46.6462, -75.3244 46.6462, -75.3244 46.4583))')" pgsql2shp -f NRN.shp gis "select * FROM select_nrn_roadtile('SRID=4326;POLYGON((-75.3244 46.4583, -75.6704 46.4583, -75.6704 46.6462, -75.3244 46.6462, -75.3244 46.4583))')" 10. RoadRunner 10.1 Télécharger openjump # le dépôt contrib est nécessaire ( /etc/apt/sources.list: deb http://ftp.ca.debian.org/debian/ sid main contrib ) apt-get install openjump 10.2 Télécharger le plugin RoadRunner https://sourceforge.net/projects/jump-pilot/files/ (roadmatcher1.4forOJ.zip) su - mkdir /usr/share/openjump/ext cd /usr/share/openjump/ext unzip roadmatcher1.4forOJ.zip 10.3 Ouvrir les données sous OpenJUMP Menu Fichier > Charger les données géographiques depuis un fichier... > Filtre ESRI Shapefile (*.shp) > NRN.shp, OSM.shp (on peut choisir les deux en même temps) 10.4 Création d'une session Menu RoadMatcher > New Session > Suivant > Select Input Layers: Reference DataSet = NRN Layer > Suivant > Select Node Contraint Layers: Suivant > Perform Automatic Conflation: AutoMatch désactivé, AutoAdjust désactivé > Finir !Input Errors !The following errors were found in the input data. Please review before continuing. !Coincident segments were found in the source networks. 10.4 Alternative Sélectionner la couche Travail > NRN. Cliquer-droit et choisir "Enregistrer les données géographiques dans un fichier..." Nommer le fichier Result.jml 10.5 Exporter en OSM # Utiliser le polygone utilisé à l'étape 9 et écrivez le dans un fichier echo "POLYGON((-75.3244 46.4583, -75.6704 46.4583, -75.6704 46.6462, -75.3244 46.6462, -75.3244 46.4583))" > polygon.txt # -74W 45.96N, -77W 48N # echo "POLYGON((-74 45.96, -77 45.96, -77 48, -74 48, -74 45.96))" > polygon.txt # Extraire le fichier GML unzip nrn_rrn_qc_gml_en.zip # Installer geobase2osm.py, python-shapely et python-gdal svn checkout http://svn.openstreetmap.org/applications/utils/import/geobase2osm sudo apt-get install python-gdal python-shapely # Exporter en fichier osm python geobase2osm/geobase2osm.py -o out.osm -b polygon.txt -e Result.jml -i NRN_QC_2_0_GEOM.gml # attendre... ## sortie ##7 false Starting to process Exclusion information... 0 Standalone List Size 0 Preparing to read 'NRN_QC_2_0_GEOM.gml' Starting to process GML... 0 5000 10000 15000 20000 25000 30000 35000 40000 45000 50000 55000 60000 65000 70000 75000 80000 85000 90000 95000 100000 105000 110000 115000 120000 125000 130000 135000 140000 145000 150000 155000 160000 165000 170000 175000 180000 185000 190000 195000 200000 205000 210000 215000 220000 225000 230000 235000 240000 245000 250000 255000 260000 265000 270000 275000 280000 285000 290000 295000 300000 305000 310000 315000 320000 325000 330000 335000 340000 345000 350000 355000 360000 365000 370000 375000 380000 385000 390000 395000 400000 405000 410000 415000 420000 425000 430000 435000 440000 445000 450000 455000 460000 465000 470000 475000 480000 485000 490000 495000 500000 505000 510000 515000 520000 525000 530000 535000 ... 605000 Replacing node -7306 with -3707 Replacing node -7225 with -7225 Replacing node -7461 with -7225 Saving to 'out.osm' Scanning ways for standalones Scanning excluded nodes Writing standalone Writing excluded ## fin de la sortie ## 11. Ouvrir JOSM 11.1 se créer un compte sur Openstreetmap et confirmer l'inscription 11.2 ouvrir josm, inscrire son nom d'usager/mot de passe dans Édition > Configuration... > Réglages de connexion et le fermer 11.3 Ouvrir josm encore avec la carte out.osm: josm out.osm 11.4 importer les données d'openstreetmap pour la région visualisé 11.5 ...
Source: http://wiki.openstreetmap.org/wiki/Geobase_NRN_-_OSM_Map_Feature
Dernière modification: 2010-05-09 00:26:09 par Yan Morin
Hébergé par ProgYSM