En QGIS 1.8 utilicé el complemento openstreetmap para solicitar datos del servidor, o abrir un archivo XML .osm, que produjo 3 capas (polígonos, polilíneas y puntos) en QGIS.
Esto fue genial (más o menos el error de 64 bits que afecta altamente el área recién mapeada 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ú vectorial, 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 una base de datos espacial, que aparentemente solo tiene tablas sin geometría cuando trato de agregarlo como una capa espacial. Si abro la tabla de atributos, puedo ver identificadores de nodo, formas, etc., pero no puedo entender cómo usarlos realmente.
También he intentado agregar una capa vectorial desde un archivo XML .osm. Recibo una ventana gpsbabel que no muestra nada, y finalmente un mensaje de fuente de datos no válido en QGIS.
fuente
Respuestas:
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 osm sin formato. Puede utilizar la capa de usuario - Agregar capa - Agregar capa vectorial en su lugar. En ese caso, los datos de OSM se abren con GDAL como lo documenta http://gdal.org/drv_osm.html
En QGIS 2.x , hay 3 pasos involucrados
La capa se agrega al mapa, si desea todos los nodos, formas en que puede repetir el paso 3 con otras opciones.
http://wiki.openstreetmap.org/wiki/QGIS#QGIS2_OpenStreetMap_Vectors
fuente
Me pareció muy tedioso descargar datos de OSM usando el complemento y pasar por los movimientos de importación y exportación. Es por eso que 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. 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 mejora mucho si el archivo .osm se convierte en spaceialite.
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 de SpatiaLite. Cuando cargamos las tablas de spaceialite, hay algunos problemas:
Crear los polígonos de ríos que faltan no es gran cosa:
Crear el polígono terrestre (o el polígono marino si lo prefiere por alguna razón) es un poco más complicado ya que la mayoría de las veces la costa no estará cerrada por la sencilla razón de que a menudo estamos cortando un pedazo de tierra del continente principal. . Por lo tanto, antes de que podamos usar las herramientas de poligonalización, tenemos que cerrar el área. Para hacer eso, sugiero seleccionar primero la línea costera usando "other_tags" LIKE '% "natural" => "costa"%' y crear una nueva capa a partir de esta selección (guardar la selección como ...) y editarla (no olvide para habilitar el ajuste!) para agregar líneas para cerrar el área. Luego poligonalizar.
fuente
--config OGR_SQLITE_SYNCHRONOUS OFF
.Si no le gusta el complemento, obtenga los datos de OSM que necesita con Overpass API y agregue el resultado a QGIS con
Add Vector Layer
(All files
filtro de etiquetado ).QGIS 2.0 utiliza el importador ogr2ogr OSM de GDAL 1.10 que hace un buen trabajo.
El soporte de relación parece ser mejor que el complemento en este momento.
Solo asegúrese de descargar formas y relaciones por completo , es decir, todos los nodos de las formas y todos los miembros de las relaciones, con todos sus nodos.
fuente
Sabes, no necesitas poner los datos en SpatialLite. Tu puedes sólo:
fuente