41 votos

¿Cómo cargar datos de OpenStreetMap en QGIS?

En QGIS 1.8 utilizaba el complemento openstreetmap para solicitar datos del servidor o abrir un archivo .osm XML, lo cual generaba 3 capas (polígonos, polilíneas y puntos) en QGIS.

Esto era genial (a excepción del error de 64 bits que afecta en gran medida el área recientemente mapeada en la que trabajo), ¿pero cómo lo hago en QGIS 2.x?

No encuentro ninguna documentación actualizada al respecto.

En el menú de vectores, he intentado importar desde servidores de osm, obtengo un archivo .osm, pero luego me quedo atascado. Hay una opción de menú para cargar un archivo XML, pero genera una base de datos spatialite, que aparentemente solo tiene tablas no geométricas cuando intento agregarla como una capa spatialite. Si abro la tabla de atributos, puedo ver identificadores de nodos, caminos, etc., pero no puedo averiguar cómo utilizarlos realmente.

También he intentado agregar una capa de vectores desde un archivo .osm XML. Obtengo una ventana de gpsbabel que no muestra nada, y finalmente un mensaje de origen de datos no válido en QGIS.

2 votos

Tom, he escrito instrucciones paso a paso para obtener los datos de OSM en QGIS. Espero que sean fáciles de seguir para principiantes. qgistutorials.com/en/docs/downloading_osm_data.html

0 votos

Aquí tienes un estilo decente (con instrucciones de configuración): github.com/yannos/Beautiful_OSM_in_QGIS Está destinado para PostGIS (no Spatialite).

0 votos

Aunque este enlace puede responder la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace para referencia. Las respuestas que solo contienen enlaces pueden volverse inválidas si la página vinculada cambia. - Desde la revisión

45voto

Brad8118 Puntos 1285

Actualización para QGIS 3.x: El antiguo importador OSM de QGIS 2 fue eliminado en QGIS 3 debido a una gran cantidad de errores no resueltos. El complemento QuickOSM también permite leer archivos osm en bruto. Puede utilizar Capa de usuario - Añadir capa - Añadir capa vectorial en su lugar. En ese caso, los datos de OSM se abren con GDAL como se documenta en http://gdal.org/drv_osm.html


En QGIS 2.x, hay 3 pasos involucrados

  1. Obtenga un archivo OSM, puede obtenerlo utilizando josm o overpass u otra fuente. Debe ser un xml válido. También puede descargarlo desde el menú de qgis Vector > OpenStreetMap > Descargar datos de OSM, pero a veces no da resultado. Recomiendo utilizar overpass turbo.
  2. Vector > OpenStreetMap > Importar topología desde XML, esto como usted dijo producirá una base de datos spatialite con tablas no geométricas. Creo que esta es la topología.
  3. Finalmente, puede obtener datos mediante Vector > OpenStreetMap > Exportar topología a Spatialite, aquí necesita dar el archivo db hecho arriba y al igual que en qgis 1.8 tendrá la opción de elegir puntos, líneas o polígonos. Debajo en la sección de etiquetas exportadas puede cargar todas las etiquetas contenidas en el archivo y seleccionar solo aquellas que necesita. Esta es una característica adicional respecto a la 1.8.

La capa se agrega al mapa, si desea todos los nodos, formas puede repetir el paso 3 con otras opciones.

http://wiki.openstreetmap.org/wiki/QGIS#QGIS2_OpenStreetMap_Vectors

4 votos

Esto se siente increíblemente complicado, pero funciona. Para mayor claridad, después del paso 3, todavía necesitas añadir una capa de spatialite, conectarte a la base de datos que creaste y elegir la(s) capa(s) creadas en el paso 3 para finalmente ver el resultado. ¡Gracias por tu ayuda!

0 votos

Para mí, las capas fueron creadas y añadidas automáticamente. La conexión a la base de datos se estableció en el paso 2 (a menos que la desmarcaras).

19voto

tobes Puntos 19

Encontré que descargar datos de OSM usando el complemento y pasar por los movimientos de importación y exportación era muy tedioso. Por eso escribí una solución diferente: http://anitagraser.com/2014/05/31/a-guide-to-googlemaps-like-maps-with-osm-in-qgis/

Resumen:

Los archivos OSM sin procesar pueden ser bastante grandes. Por eso es definitivamente preferible descargar el formato binario comprimido .pbf en lugar del formato XML .osm. Como fuente de descarga, recomendaría Geofabrik.

Para el primer paso de preprocesamiento: extracción del área de interés, podemos usar Osmosis:

C:\Users\anita_000\Geodata\OSM_Noirmoutier>..\bin\osmosis.bat --read-pbf pays-de-la-loire-latest.osm.pbf --bounding-box left=-2.59 bottom=46.58 right=-1.44 top=47.07 --write-xml noirmoutier.osm

Aunque QGIS también puede cargar archivos .osm, encontré que el rendimiento y el acceso a los atributos mejoran mucho si el archivo .osm se convierte a spatialite.

C:\Users\anita_000\Geodata\OSM_Noirmoutier>ogr2ogr -f "SQLite" -dsco SPATIALITE=YES noirmoutier.db noirmoutier.osm

En QGIS, podemos cargar los puntos, líneas y polígonos múltiples usando Agregar capa SpatiaLite. Cuando cargamos las tablas de spatialite, hay algunos problemas:

  • No hay polígono de tierra. En su lugar, hay características de línea "línea de costa".
  • La mayoría de los polígonos de ríos faltan. En su lugar, hay características de línea "orilla del río".

Crear los polígonos de río que faltan no es difícil:

  1. seleccionar todas las líneas donde waterway=riverbank.
  2. utilizar la herramienta Polygonize del cuadro de herramientas de procesamiento para crear automáticamente polígonos a partir de las áreas encerradas por las líneas de riverbank seleccionadas. (Cabe señalar que Processing opera de forma predeterminada solo en las características seleccionadas, pero esta configuración se puede cambiar en la configuración de Processing.)

Crear el polígono de tierra (o polígono de mar si prefieres eso por alguna razón) es un poco más complicado, ya que la mayor parte del tiempo la línea de costa no estará cerrada por la simple razón de que a menudo estamos cortando un trozo de tierra del continente principal. Por lo tanto, antes de poder utilizar las herramientas de Polygonize, tenemos que cerrar el área. Para hacer eso, sugiero primero seleccionar la línea de costa usando "other_tags" LIKE '%"natural"=>"coastline"%' y crear una nueva capa a partir de esta selección (guardar selección como ...) y editarla (¡no olvides habilitar el ajuste!) para agregar líneas y cerrar el área. Luego polygonize.

1 votos

Si estás utilizando una computadora bastante fiable, y deseas que la etapa ogr2ogr se complete antes de la próxima era de hielo, agrega --config OGR_SQLITE_SYNCHRONOUS OFF.

7voto

SpliFF Puntos 214

Si no te gusta el plugin, obtén los datos de OSM que necesitas con Overpass API y añade el resultado a QGIS con Añadir capa vectorial (habilitando el filtro Todos los archivos).

QGIS 2.0 utiliza el importador OSM ogr2ogr de GDAL 1.10 que hace un buen trabajo.

El soporte de relaciones parece ser mejor que lo que hace el plugin en este momento.

Asegúrate de descargar ways y relations completamente, es decir, todos los nodos de las ways y todos los miembros de las relaciones, con todos sus nodos.

5voto

Blair Conrad Puntos 56195

Lo sabes, no es necesario poner los datos en SpatialLite. Solo puedes:

  1. Descargar los datos (Vector > OpenStreetMap > Descargar Datos, crea un archivo .osm)
  2. Cargar los datos (archivo .osm) como una capa vectorial (Capa > Agregar Capa Vectorial). Después de seleccionar el archivo, te preguntará qué capas deseas agregar (como GDAL hace archivos separados para cada tipo: Punto, Línea, MultiLínea, MultiPolígono, ColecciónGeométrica). Selecciona lo que desees y cárgalo.

0 votos

Esto funciona de alguna manera, pero no parece separar las capas basadas en etiquetas. Entonces, básicamente, las carreteras y los ríos terminan en la misma capa Line, lo cual no es realmente útil si desea realizar análisis en los datos resultantes.

0 votos

No estaba claro en tu pregunta lo que estabas haciendo con los datos una vez importados. Por supuesto, puedes seleccionar las características que desees de los datos dentro de QGIS. Como se mencionó anteriormente, si sabes que solo deseas ciertos datos (y no en un área demasiado grande), descargar datos con Overpass probablemente sería mejor, ya que puedes preseleccionar solo ciertas características. Encuentro que Overpass Turbo es una forma amigable para el usuario de desarrollar consultas. Aquí tienes un ejemplo de todas las carreteras en la caja delimitadora: overpass-turbo.eu/s/2VX

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X