Nowy mechanizm renderowania map

Uaktualniony mechanizm renderowania map jest dostępny od wersji 18.2.0 pakietu SDK Map Google na Androida. Ten mechanizm renderowania wprowadza wiele ulepszeń, w tym obsługę stylu map w chmurze.

Nowy mechanizm renderowania zapewnia te korzyści:

  • W nowym mechanizmie renderowania dostępne są funkcje określania stylu map w chmurze.
  • W nowym mechanizmie renderowania dostępne są zaawansowane dostosowywanie linii łamanych.
  • Zmniejszone obciążenie sieci, zapotrzebowanie na przetwarzanie i zużycie pamięci.
  • Ulepszona obsługa gestów dla lepszej animacji oraz płynniejszego przesuwania i powiększania.
  • Większa płynność przejść i wyraźnie rozmieszczone etykiety mapy.
  • Większa stabilność i lepsze wrażenia użytkownika.

Harmonogram wdrażania

W marcu 2024 r. zaczęliśmy automatycznie aktualizować wszystkie aplikacje wdrożone na urządzeniach, aby korzystały z ulepszonego mechanizmu renderowania. Automatyczne aktualizacje będą przeprowadzane w najbliższych miesiącach na podstawie urządzenia, co oznacza, że urządzenia użytkowników będą aktualizowane w różnym czasie w okresie aktualizacji.

Automatyczne aktualizacje dotyczą wszystkich aplikacji działających na urządzeniach, które spełniają minimalne wymagania dotyczące urządzeń, niezależnie od używanej przez nią wersji pakietu SDK Map Google na Androida.

Automatyczne aktualizacje nie obejmują:

Co się stanie, gdy zmieni się domyślny mechanizm renderowania?

Wraz z wydaniem pakietu Maps SDK na Androida w wersji 18.2.0 domyślny mechanizm renderowania został uaktualniony. Aby skorzystać z ulepszonego mechanizmu renderowania, możesz utworzyć nowe aplikacje lub przebudować dotychczasowe, używając nowej wersji pakietu SDK. Możesz też poczekać, aż wdrożona aplikacja automatycznie zostanie zaktualizowana przez Google.

Po aktualizacji aplikacja będzie mogła korzystać ze wszystkich nowych funkcji i korzyści dostępnych w ulepszonym mechanizmie renderowania.

Jeśli jednak zdecydujesz się zrezygnować z tej zmiany, aplikacja będzie nadal korzystać ze starszego mechanizmu renderowania. Przykładowy kod pokazujący, jak zrezygnować z urządzeń, znajdziesz w sekcji Rezygnacja z ulepszonego mechanizmu renderowania.

Obsługiwane urządzenia

Automatyczna aktualizacja obejmuje wszystkie urządzenia, które spełniają te kryteria, niezależnie od używanej przez aplikację wersji pakietu SDK Map Google na Androida:

  • Android 5.0 (poziom interfejsu API 21) lub nowszy
  • Korzystanie z Usług Google Play w wersji 21.39.14 lub nowszej

Urządzenia z Androidem 4.4W (poziom interfejsu API 20) lub starszym albo używające Usług Google Play w wersji 21.39.13 lub starszej nadal będą korzystać ze starszego mechanizmu renderowania.

Rezygnacja z ulepszonego mechanizmu renderowania

W razie potrzeby możesz całkowicie zrezygnować z uaktualnienia mechanizmu renderowania, aby używać go w swojej aplikacji.

Aby to zrobić:

Kod musi wywołać metodę MapsInitializer.initialize() przed utworzeniem obiektu MapView, MapFragment lub SupportMapFragment. Zalecamy wywołanie tego parametru w funkcji onCreate dla właściwości aplikacji lub aktywności, zanim ustawisz widok treści.

Poniższy przykład pokazuje, jak wywołać MapsInitializer.initialize(), aby zrezygnować z używania starszego mechanizmu renderowania map.

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