6

Có một hướng dẫn hay về cách lưu trước một phần đã biết của bản đồ bằng TileCache, lưu trữ chúng trên cơ sở dữ liệu ứng dụng di động PhoneGap và tải chúng lên bằng OpenLayers không?Bản đồ ngoại tuyến trên PhoneGap bằng cách sử dụng OpenLayers và TileCache

Tôi đã thực hiện nhiều hướng dẫn và tôi vẫn chưa tìm ra cách để thực hiện tất cả những điều này cùng nhau.

Trả lời

1

Nếu bạn có gạch của riêng bạn và nhúng chúng vào trong kho lưu trữ ứng dụng của bạn, bạn có thể sử dụng Leaflet để hiển thị các ô cục bộ. http://leafletjs.com/
Nếu lát tùy chỉnh của bạn ở xa (được lưu trữ trên máy chủ), thì bạn vẫn sẽ không thể sử dụng chúng trong một tình huống ngoại tuyến.
Vui lòng xem blog this.

Hoàn toàn có thể sử dụng các tờ rơi lá cờ được sử dụng ngoại tuyến, chỉ cần thay đổi đường dẫn được sử dụng cho các lát, đến đường dẫn cục bộ.

Ex:.
Mặc định:

// add a CloudMade tile layer with style #997 
L.tileLayer('http://{s}.tile.cloudmade.com/[API-key]/997/256/{z}/{x}/{y}.png', { 
    attribution: 'Map data' 
}).addTo(map);

Offline:


L.tileLayer('file://path_to_your_tiles/{z}{x}{y}.png', { 
    attribution: 'Map data' 
}).addTo(map);

Chỉ cần chắc chắn gạch của bạn được đặt tên trên cùng một khuôn mẫu (ví dụ .: 6_17_15.png). Bạn có thể thay đổi mẫu thành.

Bạn có thể lưu trữ các lát bản đồ cục bộ bằng cấu trúc thư mục để khớp với một máy chủ và trỏ tileLayer của bạn tại vị trí cục bộ của ô. Một điều cần ghi nhớ mặc dù, một số nhà cung cấp bản đồ gạch sẽ khó chịu nếu bạn cạo gạch của họ en-masse để sau đó lưu trữ tại địa phương. Họ sẽ đặc biệt khó chịu nếu bạn viết một ứng dụng khuyến khích nhiều người sử dụng ứng dụng để thực hiện việc này. Một ứng dụng như vậy có thể nhanh chóng bị chặn. Xem ví dụ http://wiki.openstreetmap.org/wiki/Tile_usage_policy. Bạn luôn có thể hiển thị các ô của riêng mình để giữ cục bộ.

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