Antecedentes
Descargué datos de Alberta OSM de Geofabrik y lo ejecuté en un servidor Linux privado usando PostgreSQL 9.1, PostGIS 2.0, Mapnik 2.1.0, osm2pgsql, Apache 2, mod_tile, renderd y OpenLayers:
Los datos se importaron de la osm2pgsql
siguiente manera:
osm2pgsql -W -K -S /usr/local/share/osm2pgsql/default.style -d osm alberta.osm.bz2
Problema
Los datos de OSM para Alberta están incompletos. Me dieron un conjunto de archivos de forma que mejora los datos de OSM:
City.dbf, City.prj, City.sbn, City.sbx, City.shp, City.shp.xml, City.shx
Además de archivos de forma adicionales para pueblos, áreas urbanas, límites de distritos municipales, etc. Importé con éxito los archivos de forma en PostgreSQL usando un complemento pgAdmin . El City.prj
archivo describe su proyección de la siguiente manera:
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]]
Los datos del archivo de forma y los datos de OpenStreetMap (OSM) tienen cada uno su propia base de datos, pero creo que quiero importar los datos del archivo de forma a la base de datos de OSM. (Este es un servidor privado y una copia local de los datos de OSM; los datos del shapefile no se pueden compartir legalmente).
Actualización n. ° 1
Para ser claros, los archivos de forma no contienen carreteras: solo límites municipales (que definitivamente no son parte de los datos OSM), ciudades (algunas de las cuales son parte de los datos OSM) y límites de ciudades para ciudades más grandes (algunas de las cuales podrían conflicto con los datos de OSM).
Pregunta
¿Cómo fusiono los datos del shapefile con los datos de OSM para que las nuevas ciudades aparezcan en el mapa?
Nota: Mi principal preocupación es resolver datos duplicados (p. Ej., Edmonton figura en OSM y en los archivos de forma adquiridos).
enlaces relacionados
- 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
¡Gracias!
fuente
Respuestas:
Introducción
Esto probablemente requerirá una cantidad significativa de trabajo manual para detectar y eliminar los datos duplicados. Cuando detecta y resuelve los datos duplicados; querrá que ambas fuentes estén en el mismo formato geográfico: shapefile, bases de datos PostGIS o como datos OSM.
Flujo de trabajo
El siguiente flujo de trabajo se basa en tener ambas fuentes de datos como OSM antes de fusionar y resolver datos duplicados.
Hay un par de opciones para convertir los datos en OSM:
UNA]
ogr2osm
como habías notado: hay un par de versiones diferentes de ogr2osm, no importa cuál uses; prefiero pnorman , es la más actualizada. Pase lo que pase, asegúrese de que los archivos de traducción sean compatibles con la versión de ogr2osm que está utilizando (en aras de la simplicidad, los que he vinculado deben ser compatibles con la versión de ogr2osm). Vea aquí como ejemplos de archivos de traducción que son compatibles con ogr2osm de pnorman.Asegúrese de que el archivo de traducción esté completo con toda la información que desea en su archivo de forma. El archivo de traducción convertirá sus Tipos y atributos del shapefile en lo que OSM llama Etiquetas , que consisten en Claves y Valores.
1a. ejecutar ogr2osm.
Abrir josm , descargar el plugin de fusión
Sus datos de gobierno ahora son un archivo osm. Abra josm, Archivo> abrir Sus datos están allí como una capa.
Si ya tiene los datos de OSM almacenados localmente en su computadora, ábralos en josm, también se abrirá como una nueva capa.
La fusión de estas dos fuentes de datos y la resolución de los datos duplicados se conoce como fusión . Ejecute el complemento de combinación y resuelva todos los conflictos.
Si JOSM se queda sin memoria (p. Ej., Cuando usa archivos grandes), separe los tipos de atributos y complete este flujo de trabajo varias veces, cada uno con un tipo diferente de datos (p. Ej., Límites y usos del suelo; carreteras, edificios) y, finalmente, fusionar los archivos osm juntos usando osmium u otra herramienta.
B. JOSM también puede leer archivos de forma aunque el soporte de SHP no es perfecto y este método asume que el archivo de forma se puede cargar completamente en la memoria ...
filename.shp
).Importar como OSM
Importe los datos de OpenStreetMap al sistema de la siguiente manera:
La
-j
opción es clave, ya que le indica a osm2pgsql que importe las etiquetas en unahstore
columna, esto preserva la estructura de datos subyacente e importará todas las etiquetas en la base de datos.Crear capa de Mapnik
Para que los datos aparezcan en el mapa, agregue una capa y un estilo para esa capa. Esto puede ser tan simple como lo siguiente:
mapnik-stylesheets/osm.xml
.</Map>
etiqueta de cierre ......
Crear estilo Mapnik
Continuando de la sección anterior:
</Style>
etiqueta (alrededor de la línea 3350).&layer-shapefiles;
directiva:...
Roadmatcher
Roadmatcher es otra herramienta que podría ser útil
fuente
find_extent
lugar dest_find_extent
). La base de datos tiene instalado PostGIS 2.0.