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 udostępnia wiele ulepszeń, m.in. obsługę stylu map w chmurze.

Zalety nowego mechanizmu renderowania:

  • Funkcje określania stylu map w chmurze są dostępne z nowym mechanizmem renderowania.
  • W nowym mechanizmie renderowania są dostępne zaawansowane dostosowywanie linii łamanych.
  • Zmniejszone obciążenie sieci, zapotrzebowanie na przetwarzanie i zużycie pamięci.
  • Ulepszona obsługa gestów zwiększających jakość animacji oraz płynniejsze przesuwanie i powiększanie.
  • Bardziej płynne przejścia i czytelne rozmieszczanie etykiet mapy.
  • Większa stabilność i lepsze wrażenia użytkownika.

Harmonogram wdrażania

W październiku 2021 r. rozpoczęliśmy wdrażanie uaktualnionego mechanizmu renderowania map. Od tego momentu możesz zacząć korzystać z ulepszonego mechanizmu renderowania w swojej aplikacji.

Wraz z opublikowaniem pakietu SDK Map Google w wersji 18.2.0 na Androida przenieśliśmy domyślny mechanizm renderowania ze starszego mechanizmu renderowania do uaktualnionego mechanizmu renderowania map. W wersji 18.2.0 mechanizm renderowania map używany podczas tworzenia nowej lub ponownej kompilacji aplikacji staje się uaktualnionym mechanizmem renderowania map.

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

Domyślny mechanizm renderowania staje się uaktualnionym mechanizmem renderowania wraz z pakietem SDK Map Google w wersji 18.2.0 na Androida. Aby skorzystać z ulepszonego mechanizmu renderowania, musisz utworzyć nową aplikację lub ponownie skompilować istniejące aplikacje, używając nowej wersji pakietu SDK.

Możesz jednak zrezygnować z tej zmiany. Jeśli to zrobisz, aplikacja nadal będzie używać starszego mechanizmu renderowania. Przykładowy kod pokazujący, jak zrezygnować z tej opcji, znajdziesz w sekcji Rezygnacja z korzystania z ulepszonego mechanizmu renderowania.

Obsługiwane urządzenia

Aby korzystać z uaktualnionego mechanizmu renderowania map, urządzenia muszą spełniać następujące kryteria:

  • Android 5.0 (poziom interfejsu API 21) lub nowszy
  • Co najmniej 2 GB miejsca na dane
  • 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, które mają mniej niż 2 GB miejsca na dane lub używają Usług Google Play w wersji 21.39.13 lub starszej, nadal będą korzystać ze starszego mechanizmu renderowania, nawet gdy domyślny mechanizm renderowania zmieni się na ulepszony mechanizm renderowania map.

Zrezygnuj z używania ulepszonego mechanizmu renderowania

Domyślnie aplikacje utworzone przy użyciu pakietu SDK Map Google w wersji 18.2.0 na Androida korzystają z ulepszonego mechanizmu renderowania. W razie potrzeby możesz zrezygnować z używania uaktualnionego mechanizmu renderowania, aby używać go w aplikacji.

Aby to zrobić:

Kod musi wywołać MapsInitializer.initialize() przed utworzeniem obiektu MapView, MapFragment lub SupportMapFragment. Zalecamy wywoływanie tej funkcji w funkcji onCreate dla właściwości Aplikacja lub Aktywność, zanim ustawisz widok treści.

Poniższy przykład pokazuje, jak wywołać MapsInitializer.initialize(), aby zrezygnować ze 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;
    }
  }
}