Contexte
Téléchargez les données OSM de l'Alberta depuis Geofabrik et exécutez-les sur un serveur Linux privé à l'aide de PostgreSQL 9.1, PostGIS 2.0, Mapnik 2.1.0, osm2pgsql, Apache 2, mod_tile, renderd et OpenLayers:
Les données ont été importées osm2pgsql
comme suit:
osm2pgsql -W -K -S /usr/local/share/osm2pgsql/default.style -d osm alberta.osm.bz2
Problème
Les données OSM pour l'Alberta sont incomplètes. On m'a donné un ensemble de fichiers de formes qui améliorent les données OSM:
City.dbf, City.prj, City.sbn, City.sbx, City.shp, City.shp.xml, City.shx
Plus des fichiers de formes supplémentaires pour les villages, les zones urbaines, les limites des districts municipaux, etc. J'ai réussi à importer les fichiers de formes dans PostgreSQL en utilisant un plugin pgAdmin . Le City.prj
fichier décrit sa projection comme suit:
GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]
Les données du fichier de formes et les données d'OpenStreetMap (OSM) ont chacune leur propre base de données, mais je crois que je veux importer les données du fichier de formes dans la base de données OSM. (Il s'agit d'un serveur privé et d'une copie locale des données OSM; les données du fichier de formes ne peuvent pas être légalement partagées.)
Mise à jour # 1
Pour être clair, les fichiers de formes ne contiennent pas de routes: uniquement les limites des municipalités (qui ne font certainement pas partie des données OSM), les villes (dont certaines font partie des données OSM) et les limites des villes pour les grandes villes (dont certaines pourraient conflit avec les données OSM).
Question
Comment fusionner les données du fichier de formes avec les données OSM afin que les nouvelles villes apparaissent sur la carte?
Remarque: Ma principale préoccupation est de résoudre les données en double (par exemple, Edmonton est répertorié dans OSM et dans les fichiers de formes fournis).
Liens connexes
- http://wiki.openstreetmap.org/wiki/Shapefiles
- http://wiki.openstreetmap.org/wiki/Import/Shapefile
- http://wiki.openstreetmap.org/wiki/Convert_shp_to_osm_using_grass_and_gpsbabel
- https://github.com/wavded/js-shapefile-to-geojson
- http://redmine.yellowbkpk.com/projects/list_files/geo
- http://www.gdal.org/ogr2ogr.html
- http://wiki.openstreetmap.org/wiki/Ogr2osm
- https://github.com/andrewguertin/ogr2osm
- http://svn.openstreetmap.org/applications/utils/import/shp2osm/
- http://crschmidt.net/blog/archives/354/polyshp2osm/
- http://www.mail-archive.com/[email protected]/msg12487.html
Je vous remercie!
la source
Réponses:
introduction
Cela nécessitera probablement une quantité importante de travail manuel pour détecter et supprimer les données dupliquées. Lorsque vous détectez et résolvez les données en double; vous souhaiterez que les deux sources soient au même format géographique: fichier de formes, bases de données PostGIS ou données OSM.
Workflow
Le flux de travail suivant est basé sur le fait d'avoir les deux sources de données en tant qu'OSM avant de fusionner et de résoudre les données en double.
Il existe quelques options pour convertir les données en OSM:
UNE]
ogr2osm
comme vous l'aviez noté: il existe quelques versions différentes d'ogr2osm, peu importe celle que vous utilisez - je préfère celle de pnorman , c'est la plus à jour. Quoi qu'il en soit, assurez-vous que les fichiers de traduction sont compatibles avec la version d'ogr2osm que vous utilisez (par souci de simplicité, ceux auxquels je suis lié doivent être compatibles avec la version d'ogr2osm). Voir ici comme exemples de fichiers de traduction compatibles avec l'ogr2osm de pnorman.Assurez-vous que le fichier de traduction est complet avec toutes les informations que vous souhaitez dans votre fichier de formes. Le fichier de traduction convertira vos types et attributs du fichier de formes en ce que OSM appelle des balises , qui se composent de clés et de valeurs.
1a. exécutez ogr2osm.
Ouvrez josm , téléchargez le plugin de conflation
Vos données gov sont maintenant un fichier osm. Ouvrir josm, Fichier> ouvrir Vos données sont là sous forme de couche.
Si vous avez déjà les données OSM stockées localement sur votre ordinateur, ouvrez-les dans josm, elles s'ouvriront également comme une nouvelle couche.
La fusion de ces deux sources de données et la résolution des données en double sont appelées confusion . Exécutez le plugin de configuration et résolvez tous les conflits.
Si JOSM manque de mémoire (par exemple, lors de l'utilisation de fichiers volumineux), séparez les types d'attributs et effectuez ce flux de travail plusieurs fois, chacun avec un type de données différent (par exemple, limites et utilisations des sols; autoroutes; bâtiments), puis fusionnez enfin les fichiers osm ensemble en utilisant osmium ou un autre outil.
JOSM peut également lire les fichiers de formes bien que le support SHP ne soit pas parfait et cette méthode suppose que le fichier de formes peut être entièrement chargé en mémoire ...
filename.shp
).Importer en tant qu'OSM
Importez les données OpenStreetMap dans le système comme suit:
L'
-j
option est essentielle car elle demande à osm2pgsql d'importer les balises dans unehstore
colonne, ce qui préserve la structure de données sous-jacente et importera toutes les balises dans la base de données.Créer une couche Mapnik
Pour que les données apparaissent sur la carte, ajoutez une couche et un style pour cette couche. Cela peut être aussi simple que ce qui suit:
mapnik-stylesheets/osm.xml
.</Map>
balise de fermeture ......
Créer un style Mapnik
Suite de la section précédente:
</Style>
balise (autour de la ligne 3350).&layer-shapefiles;
directive:...
Roadmatcher
roadmatcher est un autre outil qui pourrait être utile
la source
find_extent
plutôt quest_find_extent
). PostGIS 2.0 est installé sur la base de données.