¿Cómo convertir OSM XML a geojson?

17

Quiero tomar la salida XML de una consulta Xapi y mostrarla usando un folleto o polymaps. ¿Cómo puedo hacer eso? ¿Hay una manera fácil de convertir XML a geojson

null_radix
fuente
Gracias por tu sugerencia. He intentado de la misma manera que ustedes lo han propuesto, pero desafortunadamente la conversión falló con el siguiente error. <i> ¿Alguien puede sugerir? Gracias de antemano por su tiempo ... </i> C: \ Archivos de programa \ FWTools2.4.7 \ bin> ogr2ogr -f GeoJSON D: \ New.geojson D: \ z.pbf <B> FALLO: No se puede abrir fuente de datos `z.pbf 'con los siguientes controladores. <br> -> ESRI Shapefile <br> -> Archivo MapInfo <br> -> UK .NTF <br> -> SDTS <br> -> TIGER <br> -> S57 <br> -> DGN <br> - > VRT <br> -> REC <br> -> Memoria <br> -> BNA <br> -> CSV <br> -> NAS <br> -> GML <br> -> GPX <br> -> KML <br> -> GeoJSON <br> ->
Esto parece ser una nueva pregunta en lugar de una respuesta. Si ese es el caso, publíquelo como una nueva pregunta.
Martin

Respuestas:

7

OSM2GEO - Un convertidor JS para convertir OSM a GeoJSON

* OSM2GEO - OSM to GeoJSON converter
* OSM to GeoJSON converter takes in a .osm XML file as input and produces
* corresponding GeoJSON object.
*
* AUTHOR: P.Arunmozhi <>
* DATE : 26 / Nov / 2011
* LICENSE : WTFPL - Do What The F##% You Want To Public License
* LICENSE URL: http://sam.zoy.org/wtfpl/
*
* DEPENDENCY: OSM2GEO entirely depends on jQuery for the XML parsing and
* DOM traversing. Make sure you include <script src="somewhere/jquery.js">
* </script> before you include osm2geo.js
*
* USAGE: This script contains a single function -> geojson osm2geo(osmXML)
* It takes in a .osm (xml) as parameter and returns the corresponding
* GeoJson object."

Crédito a P.Arunmozhi

https://gist.github.com/1396990

Mapperz
fuente
10

La versión de desarrollo (desde marzo de 2013) de gdal tiene soporte de lectura para OSM , tanto para formato XML como PBF.

Para que pueda convertir su archivo OSM con:

ogr2ogr -f GeoJSON myfile.geojson myfile.osm.pbf

procrastinatio
fuente
8

Puede convertir OSM XML a GeoJson con ogr2ogr. Para convertir a GeoJSON sin obtener el siguiente error:

ERROR 6: GeoJSON driver doesn't support creating more than one layer

Puede usar uno de los siguientes comandos o todos ellos:

ogr2ogr -f GeoJSON points.json data.osm.pbf points
ogr2ogr -f GeoJSON lines.json data.osm.pbf lines
ogr2ogr -f GeoJSON multilinestrings.json data.osm.pbf multilinestrings
ogr2ogr -f GeoJSON multipolygons.json data.osm.pbf multipolygons
ogr2ogr -f GeoJSON other_relations.json data.osm.pbf other_relations
ksnabb
fuente
6

osmtogeojson es otro convertidor de OSM a GeoJSON, que tiene algunos beneficios en comparación con este (OSM2GEO) u osm-y-geojson:

  1. se puede usar como herramienta de línea de comandos, así como una biblioteca javascript (navegador y nodejs).
  2. soporte multipolígono adecuado
  3. detección sofisticada de polígonos
  4. estable (puede hacer frente a datos OSM incompletos)
  5. bien probado
  6. Más rápido

La biblioteca ya está en uso en geojson.io , así como en overpass-turbo.eu .

neogeomat
fuente
No admite datos históricos (.osh.pbf)
Max von Hippel
Sé que este comentario llega tarde ... esta herramienta es increíble (siempre parece funcionar) pero es LENTA. Actualmente estamos evaluando alternativas al osmtogeojson porque incluso la conversión de una salida de paso superior de ~ 100 MB lleva unos 40 segundos en una máquina razonablemente potente. Estamos buscando ver si GDAL puede ser una alternativa por razones de velocidad. Si la velocidad no es una preocupación, recomiendo esta biblioteca.
Tommy
0

El complemento OpenStreetMap para Leaflet es otra forma de hacerlo. De esta manera, puede usar su consulta Xapi directamente en su código. Aunque solo tiene sentido para un pequeño conjunto de datos, ya que la solicitud lleva un tiempo.

ustroetz
fuente