Обновление оверлея плитки для карт Google Android при увеличении - PullRequest
0 голосов
/ 16 октября 2018

У меня есть наложение плитки в Android Google Map.Все отлично работаетНо когда я увеличиваю масштаб, все плитки исчезают, тогда новые плитки загружаются, и только через 1-2 секунды (когда загружаются новые плитки) карта показывает их.Таким образом, карта не показывает плитки в течение некоторого времени.Есть ли способ обновить плитки только после загрузки новых плиток?

Я использую базовые карты UrlTileProvider и Aeris Overlay.

enter image description here

1 Ответ

0 голосов
/ 03 декабря 2018

В любом случае, вы можете загрузить каждую плитку как изображение в локальное внутреннее или внешнее хранилище с, например, библиотекой Picasso (или отдельной Thread или AsyncTask) и определить«все новые плитки загружены» событие «вручную» (например, увеличить счетчик загруженных плиток на каждый public void onSuccess() для Пикассо или protected void onPostExecute() для AsyncTask или в конце public void run() для Thread и ждать, равное количеству всех плиток) затем используйте TileProvider для локального хранилища загруженных плиток, как в этот ответ Алекс Васильков .

Обновление

Для отображения предыдущей карты, когда плитки для увеличения + 1 уровень еще загружаются, можно создать GroundOverlay со скриншотом текущего вида карты.Снимок экрана карты Google вы можете сделать как в ответах на этот вопрос DiscDev

Обновление # 2

ЕстьЕсть несколько способов решить вашу проблему: 1) вы можете создать пользовательское представление, которое расширяет класс MapView, как в этом ответе, и показывать в переопределенном методе dispatchDraw() все, что вы хотите, или 2) вы можете установить ImageViewповерх вашего MapView и покажите его со скриншотом, когда изменен масштаб и загружены новые плитки.А при необходимости вы можете переводить события касания из ImageView в MapView и так далее.

Я предпочитаю стр.1 - создать пользовательский вид на основе MapView, переопределить dispatchDraw() и показывать временную карту в нем при загрузке новой карты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...