Como você converte o OSM XML em geojson?


17

Eu quero pegar a saída XML de uma consulta Xapi e exibi-la usando o folheto ou polímaps. Como eu posso fazer isso? Existe uma maneira fácil de converter XML em geojson


Obrigado por sua sugestão. Eu tentei da mesma maneira que vocês propuseram, mas infelizmente a conversão falhou com o seguinte erro !!! <i> Alguém pode sugerir? Agradecemos antecipadamente pelo seu tempo .... </i> C: \ Arquivos de Programas \ FWTools2.4.7 \ bin> ogr2ogr -f GeoJSON D: \ New.geojson D: \ z.pbf <B> FAILURE: Não é possível abrir datasource `z.pbf 'com os seguintes drivers. <br> -> ESRI Shapefile <br> -> Arquivo MapInfo <br> -> Reino Unido .NTF <br> -> SDTS <br> -> TIGER <br> -> S57 <br> -> DGN <br> - > VRT <br> -> REC <br> -> Memória <br> -> BNA <br> -> CSV <br> -> NAS <br> -> GML <br> -> GPX <br> -> KML <br> -> GeoJSON <br> ->

Parece ser uma nova pergunta e não uma resposta. Se for esse o caso, publique-o como uma nova pergunta.
Martin

Respostas:


7

OSM2GEO - Um conversor de JS para converter OSM para 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 para P.Arunmozhi

https://gist.github.com/1396990


10

A versão de desenvolvimento (em março de 2013) do gdal possui suporte de leitura para OSM , tanto no formato XML quanto no PBF.

Para que você possa converter seu arquivo OSM com:

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


8

Você pode converter XML do OSM em GeoJson com ogr2ogr. Para converter para GeoJSON sem obter o seguinte erro:

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

Você pode usar um dos seguintes comandos ou todos eles:

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

6

o osmtogeojson é outro conversor OSM para GeoJSON, que possui alguns benefícios quando comparado a este (OSM2GEO) ou osm-and-geojson:

  1. pode ser usado como uma ferramenta de linha de comando e também como uma biblioteca javascript (navegador e nodejs).
  2. suporte multipolígono adequado
  3. detecção sofisticada de polígonos
  4. estável (pode lidar com dados OSM incompletos)
  5. bem testado
  6. Mais rápido

A biblioteca já está em uso no geojson.io e também no overpass-turbo.eu .


Não suporta dados históricos (.osh.pbf)
Max von Hippel

Eu sei que esse comentário está chegando tarde .. essa ferramenta é incrível (sempre parece funcionar), mas é LENTA. No momento, estamos avaliando alternativas ao osmtogeojson porque mesmo a conversão de uma saída de ~ 100MB Overpass leva cerca de 40 segundos em uma máquina razoavelmente poderosa. Estamos olhando para ver se o GDAL pode ser uma alternativa por motivos de velocidade. Se a velocidade não for uma preocupação, recomendo esta biblioteca.
Tommy

0

O plugin OpenStreetMap para Leaflet é outra maneira de fazer isso. Dessa forma, você pode usar sua consulta Xapi diretamente no seu código. Embora faça sentido apenas para um pequeno conjunto de dados, já que a solicitação demora um pouco.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.