2013-02-11 11 views
1

В настоящее время я разрабатываю приложение для Android, которое имеет карту с использованием phonegap, cloudmade и листовки. Есть ли способ, каким-то образом кэшировать плитки карты на Android-телефоне? Загрузка фрагментов карты с сервера происходит каждый раз довольно медленно.Как сделать карточную плиту более эффективной с помощью листовки с помощью приложения для Android?

+0

Есть куча ответов, которые могут вам помочь. Поиск ускорения телефонных звонков –

ответ

2

Это только теоретические соображения, и я не знаю рабочих реализаций для листовки. Однако у меня есть проблема, но у меня нет времени для ее решения.

Web и PhoneGap хранилища:

  1. loacalstorage - синхронное, легко реализовать с помощью base64 URL, малого размера 2.5-5MB (вероятно PhoneGap Resolve localstorage небольшого объема выпуска).
  2. indexed db и web sql - асинхронный, размер 50 МБ (возможно, больше).
  3. phonegap file storage - асинхронный.

Как реализовать:

Написать собственный слой, который будет работать с вашей памятью, вероятно, это будет трудно для асинхронного API.

Вы всегда можете хранить плитки в качестве URL-адреса данных с кодировкой base64. Вы можете преобразовать изображение по URL-адресу сервера в URL-адрес данных с помощью JS и холста.

Если вы можете использовать предварительную загрузку плит прежде всего для использования хранения файлов, потому что вы можете просто использовать ссылки на плитки в своей файловой системе.

Для asychronous API, вы всегда можете определить вашу плитку zoom, latitude и longitude: вставить поддельные плитки с zoom_lat_lng Ид и поддельными src, проверить плитку на хранении этого идентификатора, если плитка найдена - загрузить его, иначе нагрузку от сервера с кэширование.

UPD: Смотрите мое решение кэширования с индексированной БД и веб-SQL, например: https://github.com/tbicr/OfflineMap/tree/master/leaflet_idb_sql_site и пример http://tbicr.github.com/OfflineMap/leaflet/index.html (теперь не быстро на андроид).

 Смежные вопросы

  • Нет связанных вопросов^_^