Um renderizador de mapa atualizado está disponível a partir da versão 18.2.0 do SDK do Maps para Android. Ele traz muitas melhorias, incluindo o suporte à Estilização de mapas baseada na nuvem.
Ele oferece os seguintes benefícios:
- Recursos de Estilização de mapas baseada na nuvem
- Personalizações de polilinhas avançadas
- Redução da carga de rede, da demanda de processamento e do consumo de memória
- Processamento de gestos aprimorado para melhores animações, além de deslocamento e aplicação de zoom mais suaves
- Transições mais fluidas e marcadores de mapa posicionados claramente
- Uma experiência do usuário mais estável e aprimorada
Programação de lançamento
Em outubro de 2021, o Google começou a lançar o renderizador de mapa atualizado. Naquela época, você escolhia ativar ou não o recurso para usar esse novo renderizador no seu app.
Com o lançamento da versão 18.2.0 do SDK do Maps para Android, o Google mudou do renderizador de mapa padrão legado para o atualizado. Nessa versão, o renderizador usado ao desenvolver um novo app ou recriar algum atual se torna o atualizado.
O que acontece quando o renderizador padrão muda?
O renderizador padrão vira o atualizado com o lançamento da versão 18.2.0 do SDK do Maps para Android. Para aproveitar o renderizador atualizado, é necessário desenvolver novos apps ou recriar algum atual usando a nova versão do SDK.
Porém, você tem a escolha de recusar essa mudança. Nesse caso, seu app vai continuar usando o renderizador legado. Consulte Desativar o uso do renderizador atualizado se quiser um exemplo de código.
Dispositivos compatíveis
Para usar o renderizador de mapa atualizado, os dispositivos precisam atender a estes critérios:
- Android 5.0 (nível da API 21) ou mais recente
- 2 GB ou mais de armazenamento de dados
- Versão 21.39.14 ou mais recente do Google Play Services
Os dispositivos com Android 4.4W (nível da API 20) e anteriores, com menos de 2 GB de armazenamento de dados ou com a versão 21.39.13 ou anterior do Google Play Services, vão continuar usando o renderizador legado, até mesmo depois que o renderizador padrão passar a ser o atualizado.
Desativar o uso do renderizador atualizado
Por padrão, os apps desenvolvidos usando a versão 18.2.0 do SDK do Maps para Android utilizam o renderizador atualizado. Se necessário, você pode desativar de forma explícita essa opção para dar preferência ao renderizador legado no seu app.
Para desativar:
Atualize o código para importar de forma explícita MapsInitializer e MapsInitializer.Renderer.
Atualize o código para chamar
MapsInitializer.initialize()
, transmitindoRenderer.LEGACY
. Assim, você desativa a versão atualizada e passa a usar o renderizador legado.Use OnMapsSdkInitializedCallback para determinar qual versão do renderizador foi retornada.
Seu código precisa chamar MapsInitializer.initialize()
antes da criação de qualquer MapView, MapFragment ou SupportMapFragment. Recomendamos fazer essa chamada em onCreate
para Application ou Activity do seu app antes que a exibição do conteúdo seja definida.
O exemplo a seguir mostra como chamar MapsInitializer.initialize()
para desativar a versão atualizada e passar a usar o renderizador de mapa legado.
Kotlin
import com.google.android.gms.maps.MapsInitializer import com.google.android.gms.maps.MapsInitializer.Renderer import com.google.android.gms.maps.OnMapsSdkInitializedCallback internal class MapRendererOptInApplication : Application(), OnMapsSdkInitializedCallback { override fun onCreate() { super.onCreate() MapsInitializer.initialize(applicationContext, Renderer.LEGACY, this) } override fun onMapsSdkInitialized(renderer: MapsInitializer.Renderer) { when (renderer) { Renderer.LATEST -> Log.d("MapsDemo", "The latest version of the renderer is used.") Renderer.LEGACY -> Log.d("MapsDemo", "The legacy version of the renderer is used.") } } }
Java
import com.google.android.gms.maps.MapsInitializer; import com.google.android.gms.maps.MapsInitializer.Renderer; import com.google.android.gms.maps.OnMapsSdkInitializedCallback; class MapRendererOptInApplication extends Application implements OnMapsSdkInitializedCallback { @Override public void onCreate() { super.onCreate(); MapsInitializer.initialize(getApplicationContext(), Renderer.LEGACY, this); } @Override public void onMapsSdkInitialized(MapsInitializer.Renderer renderer) { switch (renderer) { case LATEST: Log.d("MapsDemo", "The latest version of the renderer is used."); break; case LEGACY: Log.d("MapsDemo", "The legacy version of the renderer is used."); break; } } }