2013-10-22 16 views
5

Tôi đã cố gắng chuẩn bị dữ liệu OSM (* .osm.pbf) của toàn bộ Ý để sử dụng nó ngoại tuyến cho một ứng dụng iPhone. Tôi cần mức thu phóng từ 7 đến 16 vì có rất nhiều POI trên toàn quốc.Bản đồ ngoại tuyến trên iOS cho cả nước (OSM)

This là điểm bắt đầu của tôi. Vấn đề với giải pháp này là kích thước tệp lớn của cơ sở dữ liệu.

Có giải pháp nguồn mở cho việc sử dụng bản đồ ngoại tuyến dựa trên véc tơ cho iOS 6/7 không? Hoặc, có thể giảm thiểu kích thước tệp cơ sở dữ liệu không?

Trả lời

3

Kích thước của cơ sở dữ liệu phụ thuộc nhiều vào thông tin bạn muốn lưu trữ. OSM thực sự có rất nhiều khác nhau features trong đó bạn sẽ chỉ cần một tập con nhỏ. Nếu bạn chỉ cần POI sau đó bạn có thể lọc ra tất cả các đường cao tốc, landuses, hồ và sông, đường dây điện và có thể xây dựng phác thảo. Điều này có thể được thực hiện bằng cách bỏ tất cả elements với tags tương ứng và kết quả là cơ sở dữ liệu kết quả sẽ nhỏ hơn nhiều. osmfilter có thể giúp đỡ.

Có một danh sách dài gồm OSM-based applications for iOS trong đó một số là mã nguồn mở. Và có một trang wiki về vector tiles. Nhưng hãy nhớ rằng tiles thường chỉ đại diện cho một bản đồ trực quan mà không chứa thông tin về POI hoặc các tính năng khác.

+0

Cảm ơn bạn đã cung cấp thông tin và liên kết. Tôi mới vào chủ đề của bản đồ, đặc biệt là bản đồ ngoại tuyến. Tôi đã tìm ra rằng chủ đề là sâu và khó để tìm một điểm khởi đầu. Để giảm một số tính năng dường như không phải là giải pháp phù hợp với tôi. Kích thước tệp vẫn quá lớn. Bạn có thể cho tôi một điểm khác để bắt đầu không? (có thể dựa trên vector) Có thể triển khai định tuyến ngoại tuyến cho các tiện ích mở rộng trong tương lai không? –

+1

Có thể tốt hơn nếu sử dụng danh sách trắng cho các thẻ thay vì xóa các danh sách trắng cụ thể (qua danh sách đen) nhưng điều này đòi hỏi một số nỗ lực. Dù sao bạn phải làm một số đọc trong wiki để có được một ý tưởng mà thẻ bạn sẽ cần và những gì bạn không, tùy thuộc vào trường hợp sử dụng của bạn (s). Và tất nhiên bạn có thể sử dụng sau này để định tuyến ngoại tuyến, tùy thuộc vào thẻ bạn giữ và thẻ nào bạn thả. Khác hơn là tôi không chắc chắn những gì bạn đang cố gắng để hỏi tôi. – scai

6

Tôi đã nghiên cứu sâu rộng về chủ đề này, bởi vì dự án hiện tại của tôi yêu cầu chức năng ánh xạ ngoại tuyến.

Tôi sẽ tiết kiệm cho bạn rất nhiều thời gian bằng cách chỉ cho bạn một số công cụ nguồn mở sẵn có & dự án tôi đã tìm thấy.

OpenStreetPad - https://github.com/beelsebob/OpenStreetPad/

Dự án này không còn được duy trì. Tuy nhiên, nó đọc trực tiếp từ các tệp osm.pbf và hiển thị thành công các bản đồ. Bạn sẽ phải quản lý kích thước của khu vực bạn muốn lập bản đồ, bởi vì việc triển khai này dường như bị treo và cuối cùng sụp đổ nếu bạn cố gắng tải toàn bộ một quốc gia vào đó. Tôi đã sử dụng một tập tin osm.pbf 25mb cho một tập hợp con của vùng LA và nó hoạt động rất tốt. Tôi nghĩ rằng công cụ dựng hình cần tối ưu hóa.

Mapsforge chuyển đến iOS - https://github.com/medvedNick/Mapsforge_iOS

Cái này là nhanh hơn và dường như làm việc tốt hơn render dữ liệu vector.

libosmscout - http://wiki.openstreetmap.org/wiki/Libosmscout

Đây là một mã nguồn mở Thư viện C++ cho vẽ ẩn và định tuyến với các bản đồ vector. Nó được chủ động duy trì (xem danh sách gửi thư của họ). Tôi đã gặp khó khăn trong việc biên dịch trên Mac OSX nhưng có lẽ bạn sẽ có may mắn hơn. Có vẻ là một thư viện rất có khả năng, mạnh mẽ và di động. Họ đã chạy nó trên Fedora, Moblin, Ubuntu, Debian, Windows, Qt và Mac OSX/iOS.

Chúc may mắn. Nếu bạn đạt được một số loại đột phá bằng cách sử dụng các công cụ này, vui lòng quay lại và chia sẻ kết quả của bạn. Tôi đang làm việc trên cùng một công cụ và tôi có thể sử dụng con trỏ mình.

1

Câu hỏi này hơi cũ nhưng nó lại xuất hiện trong tìm kiếm bản đồ vector OSM.

Bộ công cụ WhirlyGlobe-Maply có thể hiển thị bản đồ vector dựa trên dữ liệu OSM (và các dữ liệu khác). Đó là mã nguồn mở, dựa trên OpenGL ES và rất nhanh. Phiên bản hiện tại dành cho iOS với cổng Android đang được phát triển.

Ngoài ra còn có một chuỗi công cụ để giúp tạo bản đồ vectơ từ dữ liệu OSM. Đọc here để biết chi tiết.

Các vấn đề liên quan