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.
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? –
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