20 votos

¿Cómo se convierte OSM XML a geojson?

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

16voto

Stephane Puntos 4772

Puedes 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 utilizar 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

10voto

geekmonkey Puntos 11

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

Así que usted puede convertir su archivo OSM con:

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

9voto

Brad8118 Puntos 1285

osmtogeojson es otro conversor de OSM a GeoJSON, que tiene algunas ventajas en comparación con éste (OSM2GEO) o con osm-and-geojson:

  1. puede utilizarse como herramienta de línea de comandos o como javascript (navegador). y nodejs).
  2. soporte multipolígono adecuado
  3. sofisticado detección de polígonos
  4. estable (puede hacer frente a datos OSM incompletos)
  5. bien probado
  6. más rápido

La biblioteca ya se utiliza en geojson.io así como overpass-turbo.eu .

7voto

Erik Öjebo Puntos 6937

OSM2GEO - Un conversor 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éditos para P.Arunmozhi

https://gist.github.com/1396990

1voto

Major Major Puntos 731

Si necesita una biblioteca sobre Python: osm2geojson

Ejemplo

import codecs
import osm2geojson

with codecs.open('file.osm', 'r', encoding='utf-8') as data:
    xml = data.read()

geojson = osm2geojson.xml2geojson(xml)
# >> { "type": "FeatureCollection", "features": [ ... ] }

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