Pakiet SDK Map na Androida może wyświetlać obraz mapy w formacie bitmapy, oferując użytkownikowi ograniczoną interaktywność. Jest to tzw. mapa w trybie uproszczonym.
Przykładowe fragmenty kodu
Repozytorium ApiDemos na GitHubie zawiera przykłady, które pokazują, jak korzystać z trybu lite:
- LiteDemoActivity – Java: podstawy korzystania z mapy w wersji uproszczonej w języku Java
- LiteDemoActivity – Kotlin: podstawy używania mapy w wersji uproszczonej w Kotlinie
- LiteListDemoActivity – Java: wydajne wyświetlanie map w ListViews za pomocą wersji uproszczonej w Java
- LiteListDemoActivity – Kotlin: wyświetlanie map w ListViews za pomocą trybu lite w Kotlinie
Omówienie wersji uproszczonej
Mapa w trybie uproszczonym to obraz mapy w formacie bitmapy w określonej lokalizacji i poziomie powiększenia. Tryb Lite obsługuje wszystkie typy map (normalna, hybrydowa, satelitarna, terenu) oraz podzbiór funkcji udostępnianych przez pełny interfejs API. Tryb Lite jest przydatny, gdy chcesz wyświetlić na strumieniach wiele map lub mapę, która jest zbyt mała, aby umożliwić znaczącą interakcję.
Użytkownicy, którzy wyświetlają mapę, nie mogą jej powiększać ani przesuwać. Ikony na mapie umożliwiają użytkownikom wyświetlanie mapy w aplikacji mobilnej Mapy Google i wyznaczanie tras.
Dodawanie mapy w trybie uproszczonym
Tryb uproszczony korzysta z tych samych klas i interfejsów co pełna wersja interfejsu API Map Google na Androida. Tryb GoogleMap
możesz ustawić w ten sposób:
- Jako atrybut XML w elementach
MapView
lubMapFragment
. - Lub w obiekcie
GoogleMapOptions
Jako atrybut XML w elemencie MapView
lub MapFragment
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:name="com.google.android.gms.maps.MapFragment"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
map:cameraZoom="13"
map:mapType="normal"
map:liteMode="true"/>
W obiekcie GoogleMapOptions
Kotlin
val options = GoogleMapOptions() .liteMode(true)
Java
GoogleMapOptions options = new GoogleMapOptions() .liteMode(true);
Szczegółowe informacje o ustawianiu początkowego stanu mapy znajdziesz w przewodniku dotyczącym obiektu mapy.
intencje uruchamiające widok mapy lub prośbę o wyznaczanie trasy;
Domyślnie pasek narzędzi w prawym dolnym rogu mapy zawiera ikony, które umożliwiają wyświetlanie mapy lub prośbę o wskazanie trasy w aplikacji mobilnej Mapy Google. Możesz wyłączyć pasek narzędzi, wywołując UiSettings.setMapToolbarEnabled(false)
. Więcej informacji znajdziesz w dokumentacji paska narzędzi.
Gdy użytkownik kliknie mapę, interfejs API uruchamia domyślnie mobilną aplikację Mapy Google. Możesz to zmienić, używając funkcji GoogleMap.setOnMapClickListener()
do ustawienia własnego listenera. Zdarzenia kliknięcia na mapie możesz też wyłączyć, wywołując funkcję setClickable()
w widoku zawierającym element MapView
lub MapFragment
. Szczegółowe informacje o tych 2 metodach znajdziesz w dokumentacji zdarzeń.
Zdarzenia cyklu życia
Podczas korzystania z interfejsu API w pełnym trybie interaktywnym użytkownicy klasy MapView
muszą przekazywać wszystkie metody cyklu życia aktywności do odpowiednich metod w klasie MapView
. Przykłady metod cyklu życia to onCreate()
, onDestroy()
, onResume()
i onPause()
.
Gdy używasz klasy MapView
w trybie uproszczonym, przekierowywanie zdarzeń cyklu życia jest opcjonalne, z wyjątkiem tych sytuacji:
- Wymagane jest wywołanie funkcji
onCreate()
, w przeciwnym razie mapa się nie wyświetli. - Jeśli chcesz wyświetlić kropkę Moja lokalizacja na mapie w trybie uproszczonym i używać domyślnego źródła lokalizacji, musisz wywołać funkcje
onResume()
ionPause()
, ponieważ źródło lokalizacji będzie aktualizowane tylko między tymi wywołaniami. Jeśli używasz własnego źródła danych o lokalizacji, nie musisz wywoływać tych dwóch metod.
Obsługiwane funkcje interfejsu API
W tabeli poniżej opisano działanie mapy w trybie uproszczonym w poszczególnych obszarach funkcji interfejsu API. Jeśli aplikacja wywoła metodę, która nie jest obsługiwana w trybie Lite, interfejs API zarejestruje komunikat ostrzegawczy.
Funkcjonalność | |
---|---|
Typy map | Czy jest obsługiwane? Tak
W interfejsach GoogleMapOptions.mapType() i GoogleMap.setMapType() dostępne są te typy map: MAP_TYPE_NORMAL , MAP_TYPE_SATELLITE , MAP_TYPE_TERRAIN , MAP_TYPE_HYBRID i MAP_TYPE_NONE . |
Linie złożone, wielokąty, okręgi | Czy jest obsługiwane? Tak
Funkcje trybu lite dotyczące kształtów odpowiadają pełnemu interfejsowi API. |
Odwzorowanie | Czy jest obsługiwane? Tak
Tryb lite funkcji Projection odpowiada pełnemu interfejsowi API. |
Moja lokalizacja | Czy jest obsługiwane? Tak
Tryb lite w przypadku warstwy Moja lokalizacja odpowiada pełnemu interfejsowi API. |
Dopełnienie mapy | Czy jest obsługiwane? Tak
Obsługa trybu lite dla
wypełniania mapy
odpowiada pełnemu interfejsowi API. |
Okna informacyjne | Czy jest obsługiwane? Tak
Jeśli ustawisz title() znacznika, po jego kliknięciu przez użytkownika pojawi się domyślne okno informacyjne. Możesz wyświetlić okno informacyjne programowo, wywołując metodę showInfoWindow() na znaczniku.
Możesz też tworzyć niestandardowe okna informacji w interfejsie InfoWindowAdapter . |
Niestandardowe style mapy podstawowej | Czy jest obsługiwane? Częściowo
Pakiet SDK Map na Androida umożliwia stosowanie niestandardowego stylu do mapy podstawowej. Tryb Lite obsługuje tylko styl niestandardowy oparty na formacie JSON, a nie styl oparty na konsoli Cloud, który wymaga identyfikatora mapy do renderowania mapy stylizowanej.
Tryb uproszczony nie obsługuje też ustawień schematu kolorów mapy, aby używać ciemnego trybu.
|
Znaczniki | Czy jest obsługiwane? Częściowo
Możesz dodać znacznik i zareagować na zdarzenie kliknięcia. Możesz też dodać niestandardowe ikony znaczników. Nie można przeciągać znacznika. Znaczniki na mapie w trybie uproszczonym są płaskie i nie można ich obracać. |
Pozycja kamery, powiększenie i animacja | Czy jest obsługiwane? Częściowo
Możesz ustawić cel i powiększenie kamery, ale nie jej pochylenia ani kierunku.
W trybie Lite poziom powiększenia jest zaokrąglany do najbliższej liczby całkowitej.
Wywołanie Wywołanie funkcji |
Mapowanie zdarzeń | Czy jest obsługiwane? Częściowo
Tryb uproszczony obsługuje: Aby wyłączyć zdarzenia kliknięcia na mapie w trybie uproszczonym, możesz wywołać funkcję Szczegółowe informacje znajdziesz w dokumentacji zdarzeń. |
Mapy i budynki wewnętrzne | Czy jest obsługiwane? Nie
Tryb Lite wyświetla te same kafelki co interfejs Maps Static API.
Oznacza to, że jeśli plan piętra jest wbudowany w domyślną kartę, będzie on widoczny. W przeciwnym razie nie będzie działać. Nie możesz też zmienić wyświetlanego poziomu ani manipulować selektorem poziomu. |
Warstwa natężenia ruchu | Czy jest obsługiwane? Nie
GoogleMap.setTrafficEnabled() nie jest obsługiwany w trybie uproszczonym. |
Nakładki na teren | Czy jest obsługiwane? Nie
Tryb GoogleMap.addGroundOverlay() nie jest obsługiwany w trybie lite. |
Nakładki z kafelkami | Czy jest obsługiwane? Nie
Tryb GoogleMap.addTileOverlay() nie jest obsługiwany w trybie lite. |
Gesty | Czy jest obsługiwane? Nie
Tryb uproszczony nie obsługuje gestów. Włączanie i wyłączanie gestów nie będzie miało żadnego wpływu. |
Street View | Czy jest obsługiwane? Nie
Street View nie jest obsługiwane w trybie uproszczonym. |