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

null_radix
fonte
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

Mapperz
fonte
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

procrastinatio
fonte
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
ksnabb
fonte
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 .

neogeomat
fonte
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.

ustroetz
fonte
0

Use osmtogeojson como está escrito neste guia :

osmtogeojson Pittsburgh.xml > Pittsburgh.geojson
Francesco Mantovani
fonte