Maps SDK na Androida może wyświetlać mapę w postaci obrazu bitmapowego, zapewniając użytkownikowi ograniczoną interaktywność. Jest to mapa w wersji uproszczonej.
Przykładowe fragmenty kodu
Repozytorium ApiDemos na GitHubie zawiera przykłady, które pokazują, jak korzystać z wersji uproszczonej:
- LiteDemoActivity – Java: podstawy korzystania z mapy w wersji uproszczonej w języku Java
- LiteDemoActivity – Kotlin: podstawy korzystania z mapy w wersji uproszczonej w języku Kotlin
- LiteListDemoActivity – Java: efektywne wyświetlanie map w widokach ListView za pomocą wersji uproszczonej w języku Java
- LiteListDemoActivity – Kotlin: efektywne wyświetlanie map w widokach ListView za pomocą wersji uproszczonej w języku Kotlin
Omówienie wersji uproszczonej
Mapa w wersji uproszczonej to obraz bitmapowy mapy w określonej lokalizacji i poziomie powiększenia. Wersja uproszczona obsługuje wszystkie typy map (normalna, hybrydowa, satelitarna, terenowa) oraz podzbiór funkcji udostępnianych przez pełny interfejs API. Wersja uproszczona jest przydatna, gdy chcesz wyświetlić kilka map w strumieniu lub mapę, która jest zbyt mała, aby umożliwić znaczącą interakcję.
Użytkownicy wyświetlający mapę nie mogą jej powiększać ani przesuwać. Ikony na mapie umożliwiają użytkownikom wyświetlanie mapy w aplikacji mobilnej Mapy Google i wysyłanie próśb o wyznaczenie trasy.
Dodawanie mapy w wersji uproszczonej
Wersja uproszczona korzysta z tych samych klas i interfejsów co pełny interfejs Google Maps Android API. Tryb uproszczony możesz ustawić w GoogleMap na te następujące
sposoby:
- jako atrybut XML w przypadku
MapViewlubMapFragment - w obiekcie
GoogleMapOptions
Jako atrybut XML w przypadku 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);
Więcej informacji o ustawianiu stanu początkowego mapy znajdziesz w przewodniku po obiekcie mapy.
Intencje uruchamiania widoku mapy lub żądania wyznaczenia trasy
Domyślnie pasek narzędzi w prawym dolnym rogu mapy zawiera ikony, które
umożliwiają dostęp do widoku mapy lub żądania wyznaczenia trasy w mobilnej aplikacji Mapy Google. Możesz wyłączyć pasek narzędzi, wywołując
UiSettings.setMapToolbarEnabled(false). Więcej
informacji znajdziesz w dokumentacji paska narzędzi.
Domyślnie, gdy użytkownik kliknie mapę, interfejs API uruchamia mobilną aplikację Mapy Google. Możesz to zmienić, używając GoogleMap.setOnMapClickListener() do ustawienia własnego odbiornika. Możesz też wyłączyć zdarzenia kliknięcia na mapie, wywołując setClickable() w widoku, który zawiera MapView lub MapFragment. Szczegółowe informacje o tych 2 metodach znajdziesz w dokumentacji zdarzeń.
Zdarzenia cyklu życia
Gdy używasz interfejsu API w trybie w pełni 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 wersji uproszczonej, przekazywanie zdarzeń cyklu życia jest
opcjonalne, z wyjątkiem tych sytuacji:
- Obowiązkowe jest wywołanie
onCreate(), w przeciwnym razie mapa się nie pojawi. - Jeśli chcesz wyświetlić kropkę Moja lokalizacja na mapie w wersji uproszczonej i używać domyślnego źródła lokalizacji, musisz wywołać
onResume()ionPause(), ponieważ źródło lokalizacji będzie się aktualizować tylko między tymi wywołaniami. Jeśli używasz własnego źródła lokalizacji, nie musisz wywoływać tych 2 metod.
Obsługiwane funkcje interfejsu API
W tabeli poniżej opisano działanie mapy w wersji uproszczonej w poszczególnych obszarach funkcjonalności interfejsu API. Jeśli aplikacja wywoła metodę, która nie jest obsługiwana w wersji uproszczonej, interfejs API zarejestruje ostrzeżenie.
| Funkcje | |
|---|---|
| Typy map | Obsługiwane? Tak
Te następujące typy
map są dostępne za pomocą GoogleMapOptions.mapType() i
GoogleMap.setMapType(): MAP_TYPE_NORMAL,
MAP_TYPE_SATELLITE, MAP_TYPE_TERRAIN,
MAP_TYPE_HYBRID, MAP_TYPE_NONE |
| Linie łamane, wielokąty, okręgi | Obsługiwane? Tak
Funkcje wersji uproszczonej dotyczące
kształtów są zgodne z
pełnym interfejsem API. |
| Odwzorowanie | Obsługiwane? Tak
Funkcje wersji uproszczonej dotyczące
odwzorowania
są zgodne z pełnym interfejsem API. |
| Moja lokalizacja | Obsługiwane? Tak
Funkcje wersji uproszczonej dotyczące warstwy
Moja lokalizacja
są zgodne z pełnym interfejsem API. |
| Dopełnienie mapy | Obsługiwane? Tak
|
| Okna informacyjne | Obsługiwane? Tak
Jeśli ustawisz title() znacznika, domyślne
okno informacyjne pojawi się, gdy użytkownik kliknie znacznik. Możesz programowo wyświetlić okno informacyjne
wywołując showInfoWindow() na znaczniku.
Możesz też tworzyć niestandardowe okna informacyjne za pomocą interfejsu
InfoWindowAdapter. |
| Niestandardowe style mapy podstawowej | Obsługiwane? Częściowo
Maps SDK na Androida obsługuje
niestandardowe style mapy podstawowej. Wersja uproszczona obsługuje tylko niestandardowe style oparte na JSON, a nie
style oparte na chmurze, które wymagają identyfikatora mapy do renderowania mapy ze stylem.
Wersja uproszczona nie obsługuje też ustawiania
schematu kolorów mapy
na tryb ciemny.
|
| Znaczniki | Obsługiwane? Częściowo
Możesz dodać znacznik
i reagować na zdarzenie kliknięcia. Możesz też dodawać niestandardowe
ikony znaczników. Nie można ustawić znacznika jako przeciągalnego. Znaczniki na mapie w wersji uproszczonej są płaskie i nie można ich obracać. |
| Położenie kamery, powiększenie i animacja | Obsługiwane? Częściowo
Możesz ustawić cel i powiększenie kamery, ale nie jej nachylenie ani kierunek.
W wersji uproszczonej poziom powiększenia jest zaokrąglany do najbliższej liczby całkowitej.
Wywołanie Wywołanie |
| Mapowanie zdarzeń | Obsługiwane? Częściowo
Wersja uproszczona obsługuje
Aby wyłączyć zdarzenia kliknięcia na mapie w wersji uproszczonej, możesz wywołać
Więcej informacji znajdziesz w dokumentacji zdarzeń. |
| Mapy obiektów i budynki | Obsługiwane? Nie
Wersja uproszczona będzie wyświetlać te same kafelki co
interfejs Maps Static API.
Oznacza to, że jeśli plan piętra obiektu jest wbudowany w domyślny kafelek,
będzie widoczny. W przeciwnym razie nie będzie. Nie możesz też zmienić wyświetlanego poziomu
ani manipulować selektorem poziomów. |
| Warstwa natężenia ruchu | Obsługiwane? Nie
GoogleMap.setTrafficEnabled() nie jest obsługiwane
w wersji uproszczonej. |
| Nakładki na ziemię | Obsługiwane? Nie
GoogleMap.addGroundOverlay() nie jest obsługiwane w wersji uproszczonej. |
| Nakładki z kafelkami | Obsługiwane? Nie
GoogleMap.addTileOverlay() nie jest obsługiwane w wersji uproszczonej. |
| Gesty | Obsługiwane? Nie
Wersja uproszczona nie obsługuje gestów. Włączanie i wyłączanie gestów
nie będzie miało żadnego efektu. |
| Street View | Obsługiwane? Nie
Street View nie jest
obsługiwane w wersji uproszczonej. |