¿Cargando datos de OpenStreetMap en QGIS?

35

En QGIS 1.8, utilicé el complemento openstreetmap para solicitar datos del servidor o abrí un archivo XML .osm, que produjo 3 capas (polígonos, polilíneas y puntos) en QGIS.

Esto fue genial (dar o recibir el error de 64 bits que afecta en gran medida al área recién asignada en la que trabajo), pero ¿cómo hago eso en QGIS 2.x?

No puedo encontrar ninguna documentación actualizada al respecto.

En el menú de vectores, he intentado importar desde servidores osm, obtengo un archivo .osm, pero luego estoy atascado. Hay una opción de menú para cargar un archivo XML, pero produce un db espacial, que aparentemente solo tiene tablas no geométricas cuando intento agregarlo como una capa espacial. Si abro la tabla de atributos, puedo ver los identificadores de los nodos, formas, etc., pero no puedo averiguar cómo usarlos realmente.

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

    
pregunta Laurent S 03.10.2013 - 09:58

4 respuestas

38

Actualización para QGIS 3.x : el antiguo importador de OSM de QGIS 2 se eliminó en QGIS 3 debido a muchos errores no resueltos. El complemento QuickOSM también permite leer archivos sin formato osm. Puede usar la capa de usuario - Agregar capa - Agregar capa de vector en su lugar. En ese caso, los datos de OSM se abren con GDAL como se documenta en enlace

En QGIS 2.x , hay 3 pasos involucrados

  1. Obtenga un archivo OSM, puede obtenerlo utilizando josm o overpass o cualquier otra fuente. Tiene que ser un xml válido. También puede descargarlo desde qgis Vector > OpenStreetMap > Descargue el menú OSM Data , pero a veces no da resultado. Recomendaría utilizar superar el turbo .
  2. Vector > OpenStreetMap > Importar topología desde XML , como usted dijo, producirá una base de datos espacial con tablas no geométricas. Creo que esta es la topología.
  3. Por último, puede obtener datos de Vector > OpenStreetMap > Exportar topología a Spatialite , aquí debe proporcionar el archivo db creado anteriormente y, al igual que en qgis 1.8, tendrá la opción de elegir puntos, líneas o polígonos . Debajo de eso, en la sección etiquetas exportadas , puede cargar todas las etiquetas contenidas en el archivo y seleccionar solo las que necesite. Esta es una característica adicional que en 1.8.

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

enlace

    
respondido por el neogeomat 03.10.2013 - 21:03
15

Descubrí que la descarga de datos OSM usando el complemento y los movimientos de importación y exportación son muy tediosos. Por eso escribí una solución diferente: enlace

Resumen:

Los archivos OSM sin procesar pueden ser bastante grandes. Es por eso que definitivamente es 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: extraer el á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

Si bien QGIS también puede cargar archivos .osm, descubrí 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 multipolígonos usando Agregar capa SpatiaLite. Cuando cargamos las tablas de spatialite, hay algunos problemas:

  • No hay polígono de tierra. En cambio, hay características de línea de "línea costera".
  • Falta la mayoría de los polígonos de los ríos. En su lugar, hay características de línea de "ribera".

Crear los polígonos del río que faltan no es un gran problema:

  1. seleccione todas las líneas donde la vía acuática = orilla del río.
  2. use la herramienta Polygonize de la caja de herramientas de procesamiento para crear automáticamente polígonos a partir de las áreas encerradas por las líneas de ribera seleccionadas. (Tenga en cuenta que el procesamiento por defecto funciona solo en las funciones seleccionadas, pero esta configuración se puede cambiar en la configuración de procesamiento).

Crear un polígono de tierra (o un polígono de mar si lo prefiere por alguna razón) es un poco más complicado ya que la mayoría de las veces la costa no se cerrará por la sencilla razón de que a menudo estamos cortando un pedazo de tierra de El continente principal. Por lo tanto, antes de que podamos usar las herramientas de Polygonize, tenemos que cerrar el área. Para hacerlo, sugiero que primero seleccione la línea de costa utilizando "other_tags" LIKE '% "natural" = > "costa"%' y cree una nueva capa a partir de esta selección (guardar selección como ...) y edítela (no olvide habilitar el ajuste!) para agregar líneas para cerrar el área. Luego poligoniza.

    
respondido por el underdark 11.06.2014 - 21:59
5

Si no le gusta el complemento, obtenga los datos OSM que necesita con Overpass API y agregue el resultado a QGIS con Add Vector Layer (enabeling All files filter).

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

El soporte de relaciones parece ser mejor que el complemento en este momento.

Solo asegúrate de descargar vías y relaciones completamente , es decir, todos los nodos de las vías y todos los miembros de las relaciones, con todos sus nodos.

    
respondido por el AndreJ 12.02.2014 - 11:09
4

Sabes, no necesitas para colocar los datos en SpatialLite. Puedes simplemente:

  1. Descargar los datos (Vector > OpenStreetMap > Descargar datos, crea un archivo .osm)
  2. Cargue los datos (archivo .osm) como capa vectorial (Capa > Agregar capa vectorial). Después de seleccionar el archivo, le preguntará qué capas desea agregar (ya que GDAL crea archivos separados para cada tipo: Punto, Línea, MultiLine, MultiPolygon, GeomCollection). Selecciona lo que quieras y cárgalo.
respondido por el neuhausr 01.04.2014 - 15:43

Lea otras preguntas en las etiquetas