Làm thế nào để bạn chuyển đổi OSM XML sang Geojson?


17

Tôi muốn lấy đầu ra XML của truy vấn Xapi và hiển thị nó bằng tờ rơi hoặc polymaps. Làm thế nào tôi có thể làm điều đó? Có cách nào dễ dàng để chuyển đổi XML sang Geojson không


Cảm ơn đề nghị của bạn. Tôi đã thử giống như cách các bạn đã đề xuất, nhưng không may chuyển đổi không thành công với lỗi sau !!! <i> Ai có thể đề nghị? Cảm ơn trước thời gian của bạn .... </ i> C: \ Chương trình tập tin \ FWTools2.4.7 \ bin> ogr2ogr -f GeoJSON D: \ New.geojson D: \ z.pbf <B> FAILURE: Không thể mở nguồn dữ liệu `z.pbf 'với các trình điều khiển sau. <br> -> ESRI Shapefile <br> -> Tệp MapInfo <br> -> UK .NTF <br> -> SDTS <br> -> TigerER <br> -> S57 <br> -> DGN <br> - > VRT <br> -> REC <br> -> Bộ nhớ <br> -> BNA <br> -> CSV <br> -> NAS <br> -> GML <br> -> GPX <br> -> KML <br> -> GeoJSON <br> ->

Đây dường như là một câu hỏi mới hơn là một câu trả lời. Nếu đó là trường hợp, gửi nó như một câu hỏi mới.
Martin

Câu trả lời:


7

OSM2GEO - Trình chuyển đổi JS để chuyển đổi OSM sang 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."

Tín dụng cho P.Arunmozhi

https://gist.github.com/1396990


10

Phiên bản phát triển (như tháng 3 năm 2013) của gdal đã đọc hỗ trợ cho OSM , cả cho định dạng XML và PBF đơn giản.

Vì vậy, bạn có thể chuyển đổi tệp OSM của mình với:

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


8

Bạn có thể chuyển đổi OSM XML sang GeoJson bằng ogr2ogr. Để chuyển đổi sang GeoJSON mà không gặp phải lỗi sau:

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

Bạn có thể sử dụng một trong các lệnh sau hoặc tất cả chúng:

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

osmtogeojson là một trình chuyển đổi OSM-to-GeoJSON khác, có một vài lợi ích khi so sánh với điều này (OSM2GEO) hoặc osm-and-Geojson:

  1. có thể được sử dụng như một công cụ dòng lệnh cũng như thư viện javascript (trình duyệt và nodejs).
  2. hỗ trợ đa đường thích hợp
  3. phát hiện đa giác tinh vi
  4. ổn định (có thể đối phó với dữ liệu OSM không đầy đủ)
  5. kiểm tra tốt
  6. nhanh hơn

Thư viện đã được sử dụng trên Geojson.io cũng như overpass-turbo.eu .


Không hỗ trợ dữ liệu lịch sử (.osh.pbf)
Max von Hippel

Tôi biết bình luận này đến muộn .. công cụ này thật tuyệt vời (dường như nó luôn hoạt động) nhưng nó là SLOW. Chúng tôi hiện đang đánh giá các lựa chọn thay thế cho osmtogeojson vì ngay cả việc chuyển đổi đầu ra Overpass ~ 100MB cũng mất khoảng 40 giây trên một máy mạnh mẽ hợp lý. Chúng tôi đang tìm kiếm để xem liệu GDAL có thể là một sự thay thế cho lý do tốc độ. Nếu tốc độ không phải là một mối quan tâm, tôi khuyên bạn nên thư viện này.
Tommy

0

Plugin OpenStreetMap cho Leaflet là một cách khác để làm điều này. Bằng cách này, bạn có thể sử dụng truy vấn Xapi trực tiếp trong mã của mình. Mặc dù nó chỉ có ý nghĩa đối với một bộ dữ liệu nhỏ vì yêu cầu mất một lúc.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.