Novo renderizador de mapa

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:

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.

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.")
   
}
 
}
}
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;
   
}
 
}
}