Ulepszony mechanizm renderowania map jest dostępny od wersji 18.2.0 pakietu SDK Map Google na Androida. Ten moduł renderujący wprowadza wiele ulepszeń, w tym obsługę stylów map opartych na chmurze.
Nowy moduł renderujący zapewnia te korzyści:
- Funkcje definiowania stylów map w Google Cloud są dostępne w nowym module renderującym.
- Zaawansowane opcje dostosowywania polilinii są dostępne w nowym module renderującym.
- Zmniejszenie obciążenia sieci, zapotrzebowania na moc obliczeniową i zużycia pamięci.
- Ulepszona obsługa gestów, która zapewnia lepsze animacje oraz płynniejsze przesuwanie i powiększanie.
- Płynniejsze przejścia i wyraźnie umieszczone etykiety na mapie.
- większą stabilność i lepsze wrażenia użytkowników.
Stan aktualizacji automatycznej
W marcu 2024 r. Google zaczął automatycznie aktualizować wszystkie wdrożone aplikacje, aby korzystały z ulepszonego renderera. Automatyczne aktualizacje zostały zastosowane we wszystkich aplikacjach działających na urządzeniach spełniających minimalne wymagania, niezależnie od wersji pakietu SDK Map Google na Androida używanego przez aplikację. Wdrażanie zostało zakończone.
Automatyczne aktualizacje nie zostały zastosowane w przypadku:
Aplikacje, które zostały już zaktualizowane, aby korzystać z ulepszonego renderera.
Aplikacje, które wyraźnie zrezygnowały z uaktualnienia.
Aplikacje działające na urządzeniach, które nie spełniają minimalnych wymagań.
Obsługiwane urządzenia
Aby korzystać z ulepszonego renderowania map, urządzenia muszą spełniać te kryteria:
- Android 5.0 (poziom interfejsu API 21) lub nowszy
- Używanie 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 modułu renderowania.
Rezygnacja z używania ulepszonego renderera
W razie potrzeby możesz zrezygnować z używania ulepszonego modułu renderującego i zamiast niego używać w aplikacji starszego modułu.
Aby to zrobić:
Uaktualnij Maps SDK na Androida do wersji 18.0 lub nowszej.
Zaktualizuj kod, aby jawnie importować MapsInitializer i MapsInitializer.Renderer.
Zaktualizuj kod, aby wywoływać funkcję
MapsInitializer.initialize()
, przekazując wartośćRenderer.LEGACY
, aby zrezygnować z nowego renderowania i używać starszego.Użyj interfejsu OnMapsSdkInitializedCallback, aby określić, która wersja renderera została zwrócona.
Kod musi wywoływać
MapsInitializer.initialize()
zanim zostaną utworzone
MapView,
MapFragment
lub
SupportMapFragment. Zalecamy wywoływanie tej funkcji w metodzie onCreate
w przypadku aplikacji lub aktywności przed ustawieniem widoku treści.
W przykładzie poniżej pokazujemy, jak wywołać funkcję MapsInitializer.initialize()
, aby zrezygnować z używania starszego renderera 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; } } }