Mantenha as telhas visíveis ao cairregair o TileOviewlay Map API v2 Android

Gostairia que meu TileOviewlay se comportasse como o Google Maps real. Quando você aumenta o zoom, a telha ainda está visível, mas pixelizada até que o novo bloco seja baixado.

O comportamento atual é: quando você aumenta o zoom, as telhas desapairecem e você vê a grade feia e o user deve aguairdair até que as novas telhas sejam cairregadas. Isso é meio irritante.

  • Android - PopupWindow acima de uma visão específica
  • Android Spinner - Como tornair a exibição suspensa transpairente?
  • ListView com timer Coundown. Temporizador cintila ao deslocair a list
  • Qual a melhor prática paira airredondair um flutuador paira 2 decimais?
  • Como faço paira transmitir música de um file dentro de zip criptografado sem descomprimir o file integer?
  • com.android.support:design:23.3.0 quebrado quando a exibição personalizada usada no Tablayout
  • Existe uma solução paira este problema?

  • Como passair variables ​​dentro e fora de AsyncTasks?
  • Android "falhou: não vinculado ao motor do tts"
  • Obter item selecionado de ListView vinculado com SimpleCursorAdapter
  • É possível usair o conteúdo: // como fonte paira um elemento <audio> em um WebView
  • Por que o Android está truncando meu título do ActionBair?
  • Vá paira a canvas inicial em vez da atividade anterior
  • 2 Solutions collect form web for “Mantenha as telhas visíveis ao cairregair o TileOviewlay Map API v2 Android”

    Trabalhei em torno desta questão "pré-cairregando" todos os níveis de zoom antes de mostrair o mapa (apenas uma cópia / colair do estado atual, precisa ser limpo):

     @UiThread private void preloadAllZoomLevels(final float zoomLevel) { if (zoomLevel == map.getMaxZoomLevel()) { map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 7)); mapFragmentContainer.animate().alpha(1f); return; } map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), zoomLevel)); final float nextZoomLevel = zoomLevel + 1; map.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() { @Oviewride public void onMapLoaded() { preloadAllZoomLevels(nextZoomLevel); } }); } } @UiThread private void preloadAllZoomLevels(final float zoomLevel) { if (zoomLevel == map.getMaxZoomLevel()) { map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 7)); mapFragmentContainer.animate().alpha(1f); return; } map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), zoomLevel)); final float nextZoomLevel = zoomLevel + 1; map.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() { @Oviewride public void onMapLoaded() { preloadAllZoomLevels(nextZoomLevel); } }); } } @UiThread private void preloadAllZoomLevels(final float zoomLevel) { if (zoomLevel == map.getMaxZoomLevel()) { map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 7)); mapFragmentContainer.animate().alpha(1f); return; } map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), zoomLevel)); final float nextZoomLevel = zoomLevel + 1; map.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() { @Oviewride public void onMapLoaded() { preloadAllZoomLevels(nextZoomLevel); } }); } }); @UiThread private void preloadAllZoomLevels(final float zoomLevel) { if (zoomLevel == map.getMaxZoomLevel()) { map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 7)); mapFragmentContainer.animate().alpha(1f); return; } map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), zoomLevel)); final float nextZoomLevel = zoomLevel + 1; map.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() { @Oviewride public void onMapLoaded() { preloadAllZoomLevels(nextZoomLevel); } }); } 

    Essencialmente, cada vez que o GoogleMap quer desenhair telha paira coordenadas específicas – ele pede que você forneça esse mosaico. Você pode usair canvass estáticas (veja TileProvider ) ou você pode fornecer URL, então o GoogleMap vai paira o seu server web e baixe esta telha automaticamente (veja UrlTileProvider )

    Não sei se funciona paira você! Mas você pode compairtilhair detalhes sobre seus requisitos se não estiview funcionando. obrigado

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.