Nowy mechanizm renderowania map

Uaktualniony mechanizm renderowania map jest dostępny od wersji 18.2.0 pakietu SDK Maps na Androida. Wprowadza on wiele ulepszeń, w tym obsługę określania stylów map w chmurze.

Nowy mechanizm renderowania zapewnia te korzyści:

  • W nowym mechanizmie renderowania dostępne są funkcje określania stylu map działające w chmurze.
  • Zaawansowane dostosowania linii łamanych są dostępne w nowym mechanizmie renderowania.
  • Mniejsze obciążenie sieci, mniejsze zapotrzebowanie na przetwarzanie danych i wykorzystanie pamięci.
  • Ulepszona obsługa gestów dla lepszej animacji oraz płynniejsze przesuwanie i powiększanie.
  • Bardziej płynne przejścia i wyraźnie umiejscowione 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ądzeniu, aby korzystały z uaktualnionego mechanizmu renderowania. Automatyczne aktualizacje będą wykonywane stopniowo w ciągu najbliższych miesięcy w zależności od urządzenia, co oznacza, że urządzenia użytkowników będą aktualizowane o różnych porach w okresie aktualizacji.

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

Aktualizacje automatyczne nie dotyczą:

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

Domyślny mechanizm renderowania został uaktualniony po opublikowaniu pakietu SDK Map Google w wersji 18.2.0 na Androida. Aby skorzystać z uaktualnionego mechanizmu renderowania, możesz utworzyć nowe aplikacje lub ponownie skompilować istniejące aplikacje, używając nowej wersji pakietu SDK. Możesz też poczekać, aż wdrożona aplikacja zostanie automatycznie 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 zrezygnujesz z wprowadzenia tej zmiany, Twoja aplikacja będzie nadal używać starszej wersji mechanizmu renderowania. Przykładowy kod rezygnacji znajdziesz w sekcji dotyczącej rezygnowania z używania uaktualnionego mechanizmu renderowania.

Obsługiwane urządzenia

Automatyczna aktualizacja ma zastosowanie na wszystkich urządzeniach, które spełniają te kryteria, niezależnie od wersji pakietu SDK Map Google na Androida wykorzystywanego przez aplikację:

  • 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 z usługami Google Play w wersji 21.39.13 lub starszej nadal będą korzystać ze starszego mechanizmu renderowania.

Rezygnacja z używania uaktualnionego mechanizmu renderowania

W razie potrzeby możesz całkowicie zrezygnować z używania uaktualnionego mechanizmu renderowania i używać go w swojej aplikacji.

Aby to zrobić:

Twój kod musi wywołać MapsInitializer.initialize(), zanim zostanie utworzony jakikolwiek MapView, MapFragment lub SupportMapFragment. Zalecamy wywołanie jej w onCreate dla aplikacji lub aktywności, zanim ustawisz widok treści aplikacji.

Ten przykład pokazuje, jak wywołać funkcję MapsInitializer.initialize(), aby zrezygnować ze starszego mechanizmu renderowania mapy.

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