Đang tải xuống dữ liệu OpenStreetMap


43

Có cách nào đơn giản để tải xuống dữ liệu từ OpenStreetMap (OSM) không?

Lấy ví dụ về Bắc Mỹ, tôi nhận ra Cloudcraft (Cloudcraft không còn cung cấp các bản tải xuống của OSM) và Geofabrik ( http://doad.geofabrik.de/osm/north-america/ ) đều cung cấp các bản tải xuống, nhưng các tệp rất lớn (0,5 gb - 4gb). Tôi cũng đã thử sử dụng thanh công cụ QGIS-OSM nhưng tôi không gặp nhiều may mắn khi làm điều này, tương tự như trang web OSM, khu vực bạn có thể chọn là rất nhỏ. Lượng dữ liệu tôi muốn tải xuống ở cấp thành phố.

Cuối cùng, có dễ sử dụng dữ liệu OSM không? Nếu tôi chọn tải xuống, OpenStreetMap XML Datatôi không thể mở các tệp osm.xml bằng cách sử dụng QGIS (thậm chí sử dụng chức năng nhập thanh công cụ QGIS-OSM). Tôi tự hỏi nếu tôi thiếu một cách rõ ràng hơn để xử lý dữ liệu.


Tôi chỉ muốn chỉ ra bản sao StackExchange rất hữu ích để được trợ giúp về các vấn đề liên quan đến OSM! http://help.openstreetmap.org/


1
nhưng các tập tin là rất lớn ?? (0,5gb - 4gb) không có trong thế giới GIS - 5TB + đang trở nên bình thường
Mapperz

xin lỗi - rất lớn cho máy chơi chữ của tôi Không quá 0,5gb, nhưng 4gb là không thể quản lý đối với tôi!
djq

Đã khám phá điều này nhiều hơn một chút, tôi thấy dữ liệu được cung cấp bởi geofabrik toàn diện hơn so với đám mây.
djq

1
@Nathanus Tôi thú nhận tôi vừa đăng ký ..... Đó là sự thật, nhưng nó thực sự tập trung vào từng chi tiết nhỏ về OSM, nhiều trong số đó có liên quan đến lập trình và không cụ thể đối với GIS. Mặc dù nếu các trang con của các trang con tồn tại, nó sẽ hoàn hảo. Các phông chữ ở đây là rất nhiều sắc nét!
djq

1
@djq trang web tải xuống CloudMade hiện đang trả về 404 - có thể nó đã bị ngừng ?
Stephen chì

Câu trả lời:


33

JOSM

Có lẽ câu trả lời dễ nhất cho cả hai phần câu hỏi của bạn, là sử dụng JOSM. Trình soạn thảo Java OpenStreetMap . Thật dễ dàng để tải xuống dữ liệu và dễ dàng "sử dụng" dữ liệu.

Để tải xuống, JOSM cung cấp một giao diện đơn giản để cho phép bạn chọn một khu vực hình chữ nhật để tải xuống, tuy nhiên, nó tải xuống thông qua API chỉnh sửa. Điều này sẽ từ chối mọi yêu cầu quá lớn và nếu nó quá lớn một chút thì sẽ mất nhiều thời gian để suy nghĩ về nó. Nói chung, toàn bộ thành phố quá lớn, nhưng bạn có thể có được một khối dữ liệu tốt bằng cách yêu cầu một số khu vực hình chữ nhật.

Để "sử dụng" dữ liệu, JOSM cho phép bạn xem dữ liệu và có một cú chọc tốt trong tất cả các thẻ. Tính năng tìm kiếm khá mạnh mẽ, cho phép bạn chọn các yếu tố với các thẻ cụ thể, nhưng ngoài ra nó thực sự phụ thuộc vào loại "sử dụng" bạn có trong tâm trí. Bạn có thể định cấu hình cách JOSM hiển thị dữ liệu ở một mức độ nào đó, nhưng để có bản đồ đẹp mắt, bạn có thể muốn xem các công cụ kết xuất được thiết kế để hoạt động với các tệp OSM. Bạn cũng có thể xem xét chuyển đổi, ví dụ như shapefile , nhưng lưu ý rằng dữ liệu là ... khác với những gì bạn có thể được sử dụng, vì vậy việc chuyển đổi này luôn có một chút mất mát.

Bên cạnh đó ... Mặc dù đó là trình xem dữ liệu khá hợp lý, mục đích chính của JOSM là trở thành trình soạn thảo OpenStreetMap . Chỉ cần nhấp vào 'tải lên' để gửi các thay đổi trở lại OpenStreetMap (bạn sẽ cần tạo tài khoản OpenStreetMap) Nếu bạn chưa thử chỉnh sửa OpenStreetMap, bạn thực sự nên làm . Bất cứ ai thậm chí có hứng thú với bản đồ cũng nên thử. Thêm nhà hàng địa phương của bạn vào bản đồ hoặc một cái gì đó như thế. Đó là cách duy nhất để có được sự hiểu biết đúng đắn về OpenStreetMap, và thật thú vị!

Tập tin lớn hơn

Điều gì xảy ra nếu một thành phố quá lớn để tải vào JOSM? Có một số tùy chọn khác (như sau) nhưng khi bạn xử lý lượng dữ liệu này, sẽ không thoát khỏi thực tế rằng nó sẽ hơi khó sử dụng một chút. Bạn đang thực sự vượt ra khỏi các công cụ GUI nhỏ thú vị và vào hệ thống GIS dữ liệu lớn. Mục dễ nhất để làm điều này (không dễ chút nào) có lẽ là tải một tệp .osm lớn vào cơ sở dữ liệu PostGIS bằng osm2pgsql , sau đó sử dụng các công cụ máy tính để bàn của GIS để xem nó.

Chiết xuất thành phố

Dịch vụ download.bbbike.org này cung cấp các bản tải xuống sẵn sàng cho một số thành phố trên thế giới.

Thẩm thấu

Nếu bạn cần một thành phố khác hoặc hộp giới hạn khác, thì bạn cần lấy một trong những lượt tải lớn mà bạn đã đề cập (có thể là trích xuất quốc gia hoặc toàn bộ hành tinh ) và sau đó trích xuất một phần từ đó.

thẩm thấu là công cụ được sử dụng rộng rãi nhất cho việc này. Đây là một công cụ dòng lệnh java cho phép bạn trích xuất một hộp giới hạn trên dòng lệnh unix với một cái gì đó như thế này:

bzcat downloaded.osm.bz2 | osmosis\
  --read-xml enableDateParsing=no file=-\
  --bounding-box top=49.5138 left=10.9351 bottom=49.3866 right=11.201 --write-xml file=-\
  | bzip2 > extracted.osm.bz2

Điều này cho thấy cách bạn thường tránh lấp đầy đĩa của mình bằng dữ liệu XML bị phồng bằng cách giải nén tệp .bz2, dẫn đầu ra vào thẩm thấu và sau đó đưa XML kết quả vào một tệp được nén.

Vì vậy, có thể điều này không phù hợp với định nghĩa "dễ dàng" của bạn, nhưng thẩm thấu là một công cụ đáng giá để hiểu rõ nếu bạn quan tâm đến việc thao tác các tệp .osm lớn. Bạn chỉ cần tìm ra lệnh đúng! (chủ đề tốt cho một câu hỏi khác tôi đoán)


Tôi đã sử dụng JOSM - nó rất hay. Tuy nhiên, tôi quan tâm đến một lượng lớn dữ liệu, thường là toàn bộ thành phố mà tôi không thể làm trong đó.
djq

Tôi đã mở rộng bằng câu trả lời để đi vào một số tùy chọn để làm việc với các tệp lớn hơn. Không dễ dàng như vậy, nhưng hy vọng rằng sẽ giúp.
Harry Wood

Cảm ơn @Harry. Tôi đã kết thúc việc sử dụng osmosistrên linux và nó hoạt động tốt. Hiện tại tôi muốn sử dụng thiết lập này trên Win 7 và tôi rất vui khi thấy có một .exebzcat. Lần trước tôi đã kiểm tra ở đó. Thật không may, dường như không có cách nào dễ sử dụng osm2pgsqltrên Windows, nếu không đó sẽ là lựa chọn lý tưởng của tôi.
djq

24

2
+1 Wow đó là tiền thân! Bạn đã trả lời câu hỏi này 16 tháng trước khi nó xuất hiện :-).
whuber


Chỉ cần một lưu ý về điều này - nó hoạt động trên bản phát hành hiện tại của QGIS mà tôi đang sử dụng (1.7), nhưng nó chỉ cho phép tải xuống các khu vực rất nhỏ.
djq

trích dẫn từ blog Mapperz "Dữ liệu đã được tải xuống trực tiếp từ Máy chủ bản đồ đường phố [dữ liệu cập nhật nhất]. ** Có giới hạn khu vực được kiểm soát bởi Máy chủ OpenStreetMap, plugin sẽ cảnh báo bạn về vấn đề này nếu cần"
Mapperz

@celenius: giới hạn kích thước là có vì dịch vụ Web OSM này dành cho mục đích ánh xạ (tức là tải xuống các khu vực nhỏ, chỉnh sửa chúng và tải lên lại). Việc sử dụng nó chỉ cho mục đích chỉ đọc thường được coi là khó chịu vì nó gây gánh nặng cho cơ sở hạ tầng OSM đã quá tải.
Igor Brejc

15

Câu trả lời đơn giản là không có cách nào nhanh chóng và dễ dàng để làm điều này. Nếu bạn muốn dữ liệu cấp thành phố cho toàn bộ Bắc Mỹ, đó sẽ là một tệp khổng lồ. Nếu bạn muốn một khu vực nhỏ hơn thì CloudMade sẽ thực hiện theo các tệp trạng thái. Bạn có thể xem ghi chú của tôi về quy trình tại http://ian01.geog.psu.edu/geoserver_docs/data/openstreetmap/osm.html nhưng tôi không có nhiều niềm vui. Tôi bắt đầu xem xét Thẩm thấu (http://wiki.openstreetmap.org/wiki/Osmosis) nhưng hết thời gian trước khi tôi nhận được nó để làm nhiều nhưng nó có thể là một giải pháp cho vấn đề của bạn.

Đối với việc sử dụng dữ liệu OSM, bạn có thể sử dụng phương pháp tiếp cận không độc lập / neogeogrpahy của họ và sử dụng mapnik, v.v. hoặc nhập dữ liệu vào PostGIS và làm cho nó hoạt động trong một số công cụ GIS thích hợp.


6

Echoing đề xuất của @ iant, nếu bạn đang tìm kiếm dữ liệu chỉ ở Hoa Kỳ, tại sao không xem xét chỉ tải xuống một lớp trạng thái cho khu vực quan tâm cụ thể của bạn từ Cloudcraft ? Và nếu lĩnh vực bạn quan tâm có thể chỉ là một vài dữ liệu có giá trị của tiểu bang, thì cách sử dụng dữ liệu đơn giản nhất là tải xuống các trích xuất shapefile ( ví dụ của Bang Oregon ) mà bạn có thể sử dụng trong hầu hết mọi chương trình GIS phổ biến.


Cập nhật: Cloudcraft đã mất từ ​​lâu, nhưng những ngày này, dịch vụ tải xuống geofabrik cung cấp các tải xuống trạng thái cho Hoa Kỳ tại đây: download.geofabrik.de/north-america.html
Harry Wood

4

Có lẽ cách dễ nhất và sạch nhất để tải xuống dữ liệu OSM cho khu vực bản đồ tùy ý sẽ là sử dụng một trong các máy chủ OSMXAPI . API OSMXAPI được dự định sẽ được sử dụng để truy cập chỉ đọc vào địa lý. dữ liệu (không giống như API OSM chính được định hướng theo hướng chỉnh sửa ). Nó cũng cho phép tải xuống các khu vực lớn hơn API chính.

Một trong những cách để truy cập OSMXAPI là sử dụng tab Xuất tại http://www.openstreetmap.org/ (chọn nút radio "OpenStreetMap XML Data" ).


Bạn có một máy chủ được đề nghị? Tôi đã thử một vài và nhận được lỗi thời gian chờ (tôi nghĩ). Kể từ đó tôi đã làm việc với một bản sao của toàn cầu trên một máy tính cục bộ.
djq

Tôi thường sử dụng cái này: open.mapquestapi.com/xapi/api/0.6 .
Igor Brejc

1
OSMXAPI luôn có một chút kỳ lạ và ngày nay không còn tồn tại như một dịch vụ đang chạy ở bất cứ đâu. Gần tương đương là mạnh hơn Overpass_API , nhưng có một vài trang web khác mà làm điều đó quá extract.bbbike.orgexport.hotosm.org
Harry Gỗ

3

Công ty WeoGeo hiện cho phép tải xuống miễn phí dữ liệu OpenStreetMap. Bạn có thể phác thảo một phác thảo của khu vực mà bạn muốn dữ liệu và một tệp được tạo.



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.