Пользовательские плитки Google Maps v2 для Android wms

Я использую Google Maps v2 для отображения тайлов из wms. Плитки отображаются корректно, пока все хорошо. Теперь мне нужна функция кеша. Я использую приведенный здесь код: http://www.azavea.com/blogs/labs/2013/01/wms-on-android/

Карты Google кэшируют тайлы по умолчанию, но кэшируют не все, тайлы не загружаются при очень высоком и низком уровнях масштабирования (загружаются повторно), а из кеша загружаются только тайлы в «середине». Основная проблема заключается в том, что когда я закрываю приложение и снова открываю его, Google Maps не загружает плитки из кеша, а загружает все заново. Не знаю почему, кеш не очищается.

Если у кого-то есть идеи по «исправлению» кеша плитки в Картах Google, это было бы здорово. если нет, то как мне получить скачанный тайл из примера по ссылке?


person user16930    schedule 19.04.2013    source источник
comment
Я также имею в виду тот же сайт. Но getTileUrl(int x, int y, int zoom) не вызывается, знаете ли вы причину.   -  person Pradeep    schedule 24.10.2013


Ответы (1)


Я думаю, вам придется написать свой собственный алгоритм загрузки и кэширования и реализовать TileProvider вместо того, чтобы расширять удобный UrlTileProvider, как в примере.

person MaciejGórski    schedule 20.04.2013
comment
Спасибо за Ваш ответ. Я создал свой собственный загрузчик и кеширование. После некоторого тестирования я понял, что мне нужно использовать асинхронную загрузку изображений плитки. Я пытался сделать это без везения. Как я могу вернуть изображение плитки, загруженное из асинхронного режима в getTile? (это имело какой-то смысл) любое предложение? - person user16930; 24.04.2013
comment
Вам не нужно создавать свои собственные задачи threds/async. Вызовы TileProvider to методы в этом интерфейсе могут быть сделаны из нескольких потоков, поэтому реализации этого интерфейса должны быть потокобезопасными. - person MaciejGórski; 24.04.2013
comment
Хорошо спасибо. Я использую простой HttpURLConnection для загрузки изображений и возврата массива байтов в getTile. При использовании getTileUrl плитки загружаются и отображаются намного быстрее (без кеша), чем при использовании getTile и моего собственного загрузчика. Разница может составлять до 10+ секунд. Есть идеи и по этому поводу? - person user16930; 25.04.2013
comment
Не без просмотра кода. Я предлагаю создать новый вопрос, и кто-то ответит. - person MaciejGórski; 26.04.2013