Nuevo procesador de mapas

A partir de la versión 18.2.0 del SDK de Maps para Android, hay disponible un procesador de mapas actualizado. Este procesador ofrece muchas mejoras, incluida la compatibilidad con el diseño de mapas basado en Cloud.

El nuevo procesador proporciona los siguientes beneficios:

  • Funciones del diseño de mapas basado en Cloud disponibles con el nuevo procesador
  • Personalizaciones avanzadas de polilíneas
  • Menor carga de red, demanda de procesamiento y consumo de memoria
  • Control de gestos optimizado para mejores animaciones, además de desplazamiento lateral y zoom más fluidos
  • Transiciones más fluidas y etiquetas de mapa claramente posicionadas
  • Una experiencia del usuario más estable y mejorada

Programa de lanzamiento

En octubre de 2021, Google comenzó a lanzar el procesador de mapas actualizado. En ese entonces, podías optar por empezar a usar el procesador actualizado en tu app.

Cuando se lanzó la versión 18.2.0 del SDK de Maps para Android, Google cambió la opción predeterminada del procesador heredado al procesador de mapas actualizado. Con la versión 18.2.0, el procesador de mapas que se utiliza cuando creas una app nueva o recreas una existente es el procesador actualizado.

¿Qué sucede cuando se modifica el procesador predeterminado?

El procesador actualizado se convirtió en el procesador predeterminado con el lanzamiento de la versión 18.2.0 del SDK de Maps para Android. Para aprovechar el procesador actualizado, debes compilar apps nuevas o volver a compilar alguna existente usando la versión nueva del SDK.

No obstante, puedes decidir inhabilitar el cambio. En ese caso, tu app seguirá usando el procesador heredado. Consulta Cómo inhabilitar el uso del procesador actualizado para obtener el código de ejemplo para la inhabilitación.

Dispositivos compatibles

Para usar el procesador de mapas actualizado, los dispositivos deben cumplir con los siguientes requisitos:

  • Android 5.0 (nivel de API 21) o una versión posterior
  • 2 GB o más de almacenamiento de datos
  • Usar la versión 21.39.14 o una posterior de los Servicios de Google Play

Los dispositivos que utilicen Android 4.4W (nivel de API 20) y versiones anteriores, tengan menos de 2 GB de almacenamiento de datos o utilicen la versión 21.39.13 o una anterior de los Servicios de Google Play seguirán usando el procesador heredado, incluso después de que el procesador predeterminado cambie al procesador de mapas actualizado.

Cómo inhabilitar el uso del procesador actualizado

De forma predeterminada, las apps que se creen con la versión 18.2.0 del SDK de Maps para Android utilizarán el procesador actualizado. De ser necesario, puedes inhabilitar de forma explícita el uso de ese procesador para usar el procesador heredado en tu app.

Para inhabilitarlo, haz lo siguiente:

Tu código debe llamar a MapsInitializer.initialize() antes de que se cree MapView, MapFragment o SupportMapFragment. Recomendamos que la llamada se haga en onCreate para Application, o Activity de tu app antes de que se configure su vista de contenido.

En el siguiente ejemplo, se muestra cómo llamar a MapsInitializer.initialize() para inhabilitar la opción predeterminada y usar el procesador de mapas heredado.

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;
    }
  }
}