Bagaimana Anda mengonversi OSM XML ke geojson?

17

Saya ingin mengambil output XML dari permintaan Xapi dan menampilkannya menggunakan leaflet atau polymaps. Bagaimana saya bisa melakukan itu? Apakah ada cara mudah untuk mengkonversi XML ke geojson

null_radix
sumber
Terima kasih atas saran Anda. Saya sudah mencoba cara yang sama yang Anda usulkan, tetapi sayangnya konversi gagal dengan kesalahan berikut !!! <i> Adakah yang bisa menyarankan? Terima kasih sebelumnya atas waktu Anda .... </i> C: \ Program Files \ FWTools2.4.7 \ bin> ogr2ogr -f GeoJSON D: \ New.geojson D: \ z.pbf <B> KEGAGALAN: Tidak dapat membuka sumber data `z.pbf 'dengan driver berikut. <br> -> ESRI Shapefile <br> -> File MapInfo <br> -> UK .NTF <br> -> SDTS <br> -> TIGER <br> -> S57 <br> -> DGN <br> -> DGN <br> - > VRT <br> -> REC <br> -> Memory <br> -> BNA <br> -> CSV <br> -> NAS <br> -> GML <br> -> GPX <br> -> KML <br> -> GeoJSON <br> ->
Tampaknya ini merupakan pertanyaan baru dan bukan jawaban. Jika itu masalahnya, posting sebagai pertanyaan baru.
Martin

Jawaban:

7

OSM2GEO - Konverter JS untuk mengonversi OSM ke 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."

Kredit ke P.Arunmozhi

https://gist.github.com/1396990

Mapperz
sumber
10

Versi pengembangan (seperti Maret 2013) dari gdal telah membaca dukungan untuk OSM , baik untuk format XML dan PBF biasa.

Jadi Anda dapat mengonversi file OSM Anda dengan:

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

prokrastinasi
sumber
8

Anda dapat mengonversi OSM XML ke GeoJson dengan ogr2ogr. Untuk mengonversi ke GeoJSON tanpa mendapatkan kesalahan berikut:

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

Anda dapat menggunakan salah satu dari perintah berikut atau semuanya:

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
sumber
6

osmtogeojson adalah konverter OSM-to-GeoJSON yang lain, yang memiliki beberapa manfaat jika dibandingkan dengan ini (OSM2GEO) atau osm-and-geojson:

  1. dapat digunakan sebagai alat baris perintah serta pustaka javascript (browser dan nodejs).
  2. dukungan multipoligon yang tepat
  3. deteksi poligon canggih
  4. stabil (dapat mengatasi data OSM tidak lengkap)
  5. diuji dengan baik
  6. lebih cepat

Perpustakaan sudah digunakan di geojson.io dan juga overpass-turbo.eu .

neogeomat
sumber
Tidak mendukung data historis (.osh.pbf)
Max von Hippel
Saya tahu komentar ini datang terlambat .. alat ini luar biasa (sepertinya selalu berfungsi) tetapi lambat. Kami saat ini sedang mengevaluasi alternatif untuk osmtogeojson karena bahkan mengonversi keluaran Overpass ~ 100MB membutuhkan waktu sekitar 40 detik pada mesin yang cukup kuat. Kami mencari untuk melihat apakah GDAL dapat menjadi alternatif karena alasan kecepatan. Jika kecepatan bukan masalah, saya merekomendasikan perpustakaan ini.
Tommy
0

Plugin OpenStreetMap untuk Leaflet adalah cara lain untuk melakukan ini. Dengan cara ini Anda dapat menggunakan kueri Xapi Anda secara langsung dalam kode Anda. Meskipun hanya masuk akal untuk set data kecil karena permintaan membutuhkan waktu.

ustroetz
sumber
0

Gunakan osmtogeojson seperti yang tertulis dalam panduan ini :

osmtogeojson Pittsburgh.xml > Pittsburgh.geojson
Francesco Mantovani
sumber