Làm cách nào để tôi vẽ và trực quan hóa bản đồ tùy chỉnh dựa trên dữ liệu OSM?


35

Tôi muốn có thể sử dụng dữ liệu openstreetmap cho một khu vực cụ thể làm nguồn và "rút ra" từ bản đồ cải thiện cơ sở hạ tầng - chủ yếu là đường.

Tôi muốn nó được tự lưu trữ (không làm hỏng bất kỳ dữ liệu nào trên các máy chủ OSM thực sự), muốn có độ linh hoạt và mức độ chi tiết khá lớn trong quá trình chỉnh sửa và thật tuyệt khi hiển thị nó theo cách khá hay.

Tôi không quen thuộc với nhiều phần mềm GIS. Trên thực tế, việc lấy dữ liệu OSM làm nguồn không quan trọng lắm, nó cũng có thể là hình ảnh vệ tinh. Những điều quan trọng - bản vẽ linh hoạt ràng buộc với tọa độ thực và trực quan hóa của bản đồ.

Tôi có thể bắt đầu từ đâu?

Hy vọng câu hỏi này có ý nghĩa ở đây :)


Bạn đang nhìn vào nền tảng nào? Bạn có thể sử dụng Google Maps để vẽ hình không?
Jared Updike

Jared, ý bạn là giao diện "Bản đồ của tôi" đơn giản của Google Maps? Điều đó là không đủ cho tôi :) Tôi cần mức độ chi tiết cao hơn nhiều. Hay bạn ám chỉ điều gì khác?
arconaut

Đối với phần nào của thế giới bạn muốn làm điều này? Có rất nhiều dữ liệu đường bộ trong phạm vi công cộng, ở một số nơi trên thế giới.
djq

Câu trả lời:


16

Kiểu dữ liệu XML OpenStreetMap .osm có thể được phân tích cú pháp và hiển thị trong một số gói phần mềm. Đối với ngăn kéo lát bản đồ tùy chỉnh chìa khóa trao tay, tôi đề nghị: http://tiledrawer.com --- một sản phẩm sử dụng EC2 của Amazon và Michal Migurski - người cung cấp các con trỏ khác trong chuỗi này :)

Bạn cũng có thể xem "Xây dựng máy chủ OpenStreetMap của riêng bạn" http://weait.com/content/build-your-own-openstreetmap-server Nó sử dụng ngăn xếp Ubuntu 10.04 / PostGIS / Mapnik.

Tất nhiên, vui lòng xem giấy phép OpenStreetMap trước khi xây dựng. http://wiki.openstreetmap.org/wiki/OpenStreetMap_License .


Cảm ơn, tôi đã tình cờ gặp lại TileDrawer một lần, nhưng theo tôi hiểu tôi cần phải có một ví dụ Amazon EC2 cho điều đó. Bây giờ tôi không muốn làm điều đó, có lẽ tôi quá lười biếng :)
arconaut

Tôi đã đọc rằng bạn có thể chạy hình ảnh EC2 trên máy của mình bằng VirtualBox.
James

Trang web của Tiledrawer đã bị hủy bỏ, repo Github vẫn ở đó nhưng cũng không hoạt động: github.com/migurski/Tile-Drawer (xem thêm trong OSM Wiki )
chrki

11

Tôi đã tìm thấy chính xác những gì tôi cần: Maperitive . Ứng dụng này có thể tải dữ liệu OSM (* .osm có thể được lưu bằng JOSM fi) và hiển thị hình ảnh đẹp dựa trên các quy tắc rất linh hoạt và có thể tùy chỉnh.


Tôi đã thấy rằng Maperitive bị treo nếu tôi cố tải một tệp .osm.bz2 hoặc thậm chí là một tệp .osm.pbf. Các tệp tôi đã thử có dung lượng khoảng 185 MB, vì vậy không có gì gần bằng kích thước của tệp hành tinh.osm.bz2 (19GB!) Mà tôi thực sự cần. Làm thế nào bạn tải các tập tin?
Drew Noakes

Drew, tôi nghĩ rằng tôi chỉ thử các khu vực nhỏ hơn nhiều.
arconaut

Maperitive là nguồn đóng, được xây dựng trên đầu .Net, không hoạt động trên linux. Nhưng nó chắc chắn có một lợi thế so với Mapnik: kiểu dáng dễ dàng hơn.
Vanuan

3
Tôi đề nghị TileMill như một sự thay thế nguồn mở.
Vanuan

9

Hai khả năng, tùy thuộc vào lượng dữ liệu OSM mà bạn muốn chỉnh sửa.

Một là lưu trữ máy chủ OSM của riêng bạn, với một bản sao dữ liệu mà bạn có thể tự do chỉnh sửa. Phần mềm cho cái này được gọi là "Cổng Rails", có thể tìm thấy ở đây: http://wiki.openstreetmap.org/wiki/The_Rails_Port

Một cách khác là sử dụng bản đồ lát gạch của OSM làm nền cho dữ liệu của riêng bạn. Tôi không thực sự đủ điều kiện để trả lời câu hỏi này, nhưng bạn có thể thấy rằng các công cụ như QGIS (http://www.qgis.org) có thể cung cấp để truy tìm các hình dạng mới dựa trên bản đồ cơ sở OSM.


8

Tạo bản đồ được chia thành nhiều bước:

  • nhập geodata (là các điểm, đường và đa giác với các thẻ thích hợp)
  • kiểu dáng (chỉ định xuất hiện tính năng trên bản đồ)
  • kết xuất thành hình ảnh raster (biến đổi geodata và kiểu thành hình ảnh bằng phần mềm kết xuất)

Bạn sẽ muốn một công cụ thực hiện tất cả các yêu cầu cho bạn đằng sau một giao diện người dùng dễ sử dụng. Nhưng thật không may, không có công cụ như vậy (hy vọng, sẽ có). Vì vậy, bạn phải chọn một công cụ chuyên dụng cho từng bước.

Tôi sử dụng kết hợp các công cụ / quy trình làm việc sau đây:

Nhập / tải xuống geodata

  • Trình chỉnh sửa JOSM :
    • tải xuống bản đồ từ máy chủ osm
    • chỉnh sửa bản đồ
    • tải các thay đổi của bạn lên máy chủ osm (tại sao bạn không chia sẻ công việc của mình?)
    • lưu bản đồ vào tệp * .osm
  • PostGIS / osm2pgsql
    • cập nhật tệp kiểu nhập nếu cần
    • nhập bản đồ đến máy chủ cục bộ

Nếu bạn không muốn chia sẻ công việc của mình, bạn có thể thiết lập máy chủ OSM cục bộ và làm cho JOSM hoạt động với nó (làm cho việc lưu bản đồ vào tệp * .osm và sử dụng osm2pgsql không cần thiết). Tuy nhiên, hãy lưu ý đến giấy phép nếu bạn sử dụng các phần của dữ liệu OSM.

Tạo kiểu

Tạo kiểu gồm hai bước:

  • thiết lập các lớp / nguồn dữ liệu
  • tùy chỉnh dòng / poligons / points / text output.

Có hai định dạng để định kiểu bản đồ: tệp kiểu mapnik "thô" và CartoCSS.

  • Mapnik là một thư viện kết xuất hỗ trợ trang web OSM.
    • Cài đặt và chỉnh sửa tệp kiểu mapnik
    • mở tệp kiểu trong trình xem mapnik

Tệp kiểu Mapnik "thô" rất khó chỉnh sửa và CartoCSS là một thuật ngữ đơn giản hơn. CartoCSS (trước đây là Cascadenik) có thể chuyển đổi thành tệp kiểu mapnik. Tilemill là một công cụ tôi sử dụng để chỉnh sửa / xem trước CartoCSS.

  • Cá rô phi .
    • Phong cách / xem trước bản đồ của bạn trong tilemill
    • xuất sang tệp mapnik * .xml.

Kết xuất

  • Tập lệnh python tùy chỉnh cho mapnik
    • Cập nhật hộp giới hạn / mức thu phóng / kích thước
    • hiển thị bản đồ thành tệp * .png.

[Tùy chọn] Đưa bản đồ của bạn trực tuyến

Tất nhiên, bạn chỉ có thể sử dụng tệp * .png lớn cho bản đồ của mình, nhưng hãy tưởng tượng sẽ mất bao lâu để tải xuống! Vì vậy, bạn chia bản đồ của mình thành các ô ở các mức thu phóng khác nhau.

  • Tilemill -> Mapnik -> MBTiles -> Mapbox

    • Bạn có thể đưa bản đồ của mình trực tuyến bằng cách sử dụng Tilemill và MapBox.

Thật không may, để cập nhật bản đồ của bạn theo các chỉnh sửa OSM mới, bạn vẫn phải tải xuống và hiển thị nó cục bộ.

Vì vậy, có một giải pháp tốt hơn: CartoDB. CartoDB hỗ trợ CartoCSS. Với nó, bạn không cần phải cài đặt bất cứ thứ gì tại địa phương. Chỉ cần nhập dữ liệu của bạn vào đó, tạo kiểu với CartoCSS và nhấp vào nút chia sẻ. Có giới hạn kích thước db miễn phí mặc dù. Nhưng vì nó là nguồn mở nên bạn có thể tự lưu trữ nó. Có một hạn chế khác: bạn chỉ có thể hình dung một trong hai điểm hoặc đường hoặc đa giác.

PS

Mỗi công cụ đều có những hạn chế riêng, vì vậy hãy thử trải nghiệm.


3

Cảm ơn, tôi thực sự có thể nhìn vào đó. Mặc dù tôi không phải là một người linux và nó có thể trở nên quá đau đớn đối với tôi :)
arconaut

2
thực tế hầu hết các công cụ được đề cập trong bài viết sẽ hoạt động trên máy tính windows hoặc mac.
Ian Turton

3

Nếu bạn đang tìm kiếm một trình chỉnh sửa bản đồ tùy chỉnh tốt, thì hãy xem OCAD , đó là một phần mềm vẽ bản đồ chuyên nghiệp. Có một phiên bản cũ hơn có sẵn miễn phí trên trang tải xuống.

Nó không có bất kỳ sự hỗ trợ đặc biệt nào cho OSM, nhưng bạn luôn có thể sử dụng một hình ảnh được xuất từ ​​OSM làm nền.


3

Có một tùy chọn đơn giản hơn để bạn chơi xung quanh với dữ liệu Bản đồ đường phố mở ở định dạng OSM. Bạn có thể dùng thử FME từ Phần mềm an toàn (www.safe.com)

Để biết thêm thông tin bạn có thể đọc về hỗ trợ OSM tại đây: http://blog.safe.com/2010/03/shared-your-data-on-openstreetmap/

Tôi đã sử dụng FME một vài lần để tạo bộ dữ liệu demo để đào tạo cho khu vực của mình bằng dữ liệu FME và OSM

~ SRG


3

Các lát OSM mặc định có định dạng "Google ốp lát", chúng được gọi là Dịch vụ Bản đồ Ngói (TMS). Hiện tại, bạn không thể sử dụng QGIS cho TMS. Nhưng bạn có thể truy cập WMS có nguồn gốc OSM bằng cách xem dịch vụ bên thứ 3 khác. Một số được liên kết tại đây: http://wiki.openstreetmap.org/wiki/WMS#Public_WMS_Servers


1
Bạn có thể sử dụng plugin OpenLayers ( github.com/sourcepole/qgis-openlayers-plugin ) trong QGIS để lấy các ô OSM.
mattwigway

2

Bạn có thể sử dụng Trình chỉnh sửa kiểu từ Cloudcraft (nhánh thương mại của OSM)

Miễn phí đăng ký và sử dụng như một cá nhân.

Với Giao diện người dùng rất tốt sẽ có thể tạo phong cách bản đồ của riêng bạn. Khi bạn đã tùy chỉnh bản đồ của mình với màu sắc, v.v. bạn có thể sử dụng nó để nhúng hoặc tạo một liên kết đến trang với bản đồ tùy chỉnh của bạn.

Xem bài đăng trên blog http://mapperz.blogspot.com/2009/03/cloudADE-map-editor.html (cập nhật thêm ở đó)



1

Các bản đồ OSM chính thức được tạo kiểu với TileMill và được hiển thị với Mapnik. Cả hai công cụ đều cực kỳ mạnh mẽ và linh hoạt. Điều gì là tốt cho OSM, nên tốt cho bạn!

Thật không may, quy trình thiết lập cho TileMillis là một sự phức tạp, ít nhất là nếu bạn muốn kết xuất dữ liệu OSM. Có rất nhiều mô tả cho Ubuntu hoặc Mac , nhưng các ý kiến ​​trong các diễn đàn cho thấy, quy trình này rất khó trên Windows.

Bạn tìm thấy một mô tả chi tiết về kết xuất bản đồ với TileMill trên Windows trong Wiki của TopoMapCreator .

Nó tuân theo quy trình cổ điển:

  • Bước A: Tải xuống và cài đặt phần mềm cần thiết (Chủ yếu là cơ sở dữ liệu Postgresql / PostGis)
  • Bước B: Tải xuống và nhập dữ liệu OSM vào cơ sở dữ liệu
  • Bước C: Tải xuống và xử lý đa giác đất
  • Bước D: Tạo dự án TileMill
  • Bước E: Tạo kiểu và xuất bản đồ với TileMill

Thông tin thêm về Wiki của TopoMapCreator .


1

Một cách khác để tạo bản đồ tùy chỉnh với dữ liệu OSM là với thư viện Mapsense.js và các ô vector của Mapsense Earth. Có một giao diện người dùng để chọn màu tại http://styler.mapsense.co/ và các bản demo hiển thị css và javascript tại developer.mapsense.co/examples/

Một lợi ích của API như thế này là bạn có thể thêm bất cứ thứ gì bạn muốn với javascript / d3 (hình ảnh vệ tinh, địa lý / topojson khác, v.v.).

Tiết lộ đầy đủ: Tôi làm việc tại Mapsense. :)


0

Nếu bạn chỉ muốn tạo một hình ảnh bản đồ tĩnh, bạn có thể muốn kiểm tra theo cách này để tạo một tệp inkscape .svg từ .osm s, mặc dù vậy, nó khá chậm. Sau đó, bạn có thể mở .svg hoặc nếu bạn muốn chuyển đổi nó sang bất kỳ định dạng nào khác (png?) Hoặc thậm chí tải nó sang studio 3d hoặc Blender :) ...

(Ngoài ra, JOSM dường như có một plugin có osmarender, nhưng tôi đã không quản lý được nó khi tôi thử ...)

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.