Pakiet Maps SDK na Androida może wyświetlać mapę w formie obrazu bitmapowego, co zapewnia użytkownikowi ograniczoną interaktywność. Jest to tzw. mapa w wersji uproszczonej.
Przykładowe fragmenty kodu
Repozytorium ApiDemos na GitHubie zawiera przykłady pokazujące, 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 przy użyciu wersji uproszczonej w języku Java.
- LiteListDemoActivity – Kotlin: efektywne wyświetlanie map w ListViews przy użyciu wersji uproszczonej w języku Kotlin.
Omówienie wersji uproszczonej
Mapa w wersji uproszczonej to obraz mapy w formacie bitmapy w określonej lokalizacji i na określonym poziomie powiększenia. Wersja uproszczona obsługuje wszystkie typy map (normalną, hybrydową, satelitarną, terenową) i podzbiór funkcji dostępnych w pełnym interfejsie API. Wersja uproszczona jest przydatna, gdy chcesz udostępnić kilka map w strumieniu lub mapę, która jest zbyt mała, aby umożliwić sensowną 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 uzyskiwanie wskazówek dojazdu.
Dodawanie mapy w wersji uproszczonej
Wersja uproszczona używa tych samych klas i interfejsów co pełna wersja Google Maps Android API. Możesz ustawić GoogleMap w wersji uproszczonej na te sposoby:
- jako atrybut XML dla
MapViewlubMapFragment, - lub w obiekcie
GoogleMapOptions
jako atrybut XML dla 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 stanu początkowego mapy znajdziesz w przewodniku po obiekcie mapy.
Intencje uruchamiania widoku mapy lub żądania wskazówek dojazdu
Domyślnie pasek narzędzi w prawym dolnym rogu mapy zawiera ikony, które zapewniają dostęp do widoku mapy lub prośby o wskazówki dojazdu w aplikacji mobilnej Mapy Google. Możesz wyłączyć pasek narzędzi, wywołując funkcję UiSettings.setMapToolbarEnabled(false). Więcej informacji znajdziesz w dokumentacji paska narzędzi.
Domyślnie, gdy użytkownik kliknie mapę, interfejs API uruchamia aplikację mobilną Mapy Google. Możesz to zmienić, używając GoogleMap.setOnMapClickListener(), aby ustawić własny detektor. Możesz też wyłączyć zdarzenia kliknięcia na mapie, wywołując metodę setClickable() w widoku zawierającym obiekt MapView lub MapFragment. Szczegółowe informacje o tych 2 technikach znajdziesz w dokumentacji zdarzeń.
Zdarzenia cyklu życia
Podczas korzystania z 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().
Jeśli używasz klasy MapView w wersji uproszczonej, przekazywanie zdarzeń cyklu życia jest opcjonalne, z wyjątkiem tych sytuacji:
- Wywołanie metody
onCreate()jest obowiązkowe, w przeciwnym razie mapa się nie pojawi. - Jeśli chcesz wyświetlać kropkę Moja lokalizacja na mapie w trybie uproszczonym i używać domyślnego źródła lokalizacji, musisz wywołać metody
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 lokalizacji, nie musisz wywoływać tych 2 metod.
Obsługiwane funkcje interfejsu API
W tabeli poniżej opisano zachowanie mapy w wersji uproszczonej w przypadku poszczególnych obszarów funkcji interfejsu API. Jeśli aplikacja wywoła metodę, która nie jest obsługiwana w wersji uproszczonej, interfejs API zarejestruje komunikat ostrzegawczy.
| Funkcje | |
|---|---|
| Typy map | Obsługiwane? Tak
W GoogleMapOptions.mapType() i GoogleMap.setMapType() dostępne są te typy map: 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 kształtów w wersji uproszczonej są takie same jak w pełnym interfejsie API. |
| Odwzorowanie | Obsługiwane? Tak
Funkcje wersji uproszczonej dla projekcji są takie same jak w pełnym interfejsie API. |
| Moja lokalizacja | Obsługiwane? Tak
Funkcje wersji uproszczonej warstwy Moja lokalizacja są takie same jak w pełnym interfejsie API. |
| Dopełnienie mapy | Obsługiwane? Tak
Obsługa dopełnienia mapy w wersji uproszczonej jest taka sama jak w pełnym interfejsie API. |
| Okna informacyjne | Obsługiwane? Tak
Jeśli ustawisz title() znacznika, po kliknięciu znacznika przez użytkownika pojawi się domyślne okno informacyjne. Okno informacyjne możesz wyświetlić automatycznie, 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
Pakiet Maps SDK na Androida obsługuje niestandardowe style mapy podstawowej. Wersja uproszczona obsługuje tylko niestandardowe style oparte na formacie JSON, a nie style działające w chmurze, które wymagają identyfikatora mapy do renderowania mapy z własnym 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 możliwego do przeciągnięcia. Znaczniki na mapie w wersji uproszczonej są płaskie i nie można ich obracać. |
| Pozycja 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 metody |
| 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ć metodę Szczegółowe informacje znajdziesz w dokumentacji zdarzeń. |
| Mapy obiektów i budynki | Obsługiwane? Nie
Wersja uproszczona będzie wyświetlać te same kafelki co Maps Static API.
Oznacza to, że jeśli plan piętra jest wbudowany w domyślny kafelek, zostanie on wyświetlony. W przeciwnym razie nie będzie to możliwe. Nie możesz też zmienić wyświetlanego poziomu ani użyć selektora poziomu. |
| Warstwa natężenia ruchu | Obsługiwane? Nie
Funkcja GoogleMap.setTrafficEnabled() nie jest obsługiwana w wersji uproszczonej. |
| Nakładki na grunt | Obsługiwane? Nie
Funkcja GoogleMap.addGroundOverlay() nie jest obsługiwana w wersji uproszczonej. |
| Nakładki z fragmentami mapy | Obsługiwane? Nie
Funkcja GoogleMap.addTileOverlay() nie jest obsługiwana 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ługiwany w wersji uproszczonej. |