Pakiet Maps SDK na Androida może wyświetlać mapę w formacie bitmapy, co zapewnia 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 uproszczonego:
- LiteDemoActivity – Java: podstawowe informacje o korzystaniu z mapy w wersji uproszczonej w Javie
- 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 Javie
- LiteListDemoActivity – Kotlin: efektywne wyświetlanie map w widokach ListView za pomocą wersji uproszczonej w Kotlinie
Omówienie wersji uproszczonej
Mapa w trybie uproszczonym to obraz bitmapowy mapy w określonej lokalizacji i na określonym poziomie powiększenia. Tryb uproszczony obsługuje wszystkie typy map (normalną, hybrydową, satelitarną i terenu) oraz część funkcji dostępnych w pełnej wersji interfejsu API. Tryb uproszczony przydaje się, gdy chcesz wyświetlić w strumieniu kilka map 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 wyznaczanie tras.
Dodawanie mapy w trybie uproszczonym
Wersja uproszczona korzysta z tych samych klas i interfejsów co pełna wersja interfejsu Google Maps Android API. GoogleMap
możesz ustawić w trybie uproszczonym na te sposoby:
- Może to być atrybut XML dla elementu
MapView
lubMapFragment
. - lub w obiekcie
GoogleMapOptions
.
jako atrybut XML dla elementu 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 w prawym dolnym rogu mapy znajduje się pasek narzędzi z ikonami, które umożliwiają dostęp do widoku mapy lub prośby o wskazówki 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.
Domyślnie, gdy użytkownik kliknie mapę, interfejs API uruchamia mobilną aplikację Mapy Google. Możesz to zmienić, używając GoogleMap.setOnMapClickListener()
, aby ustawić własny odbiornik. 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 technikach znajdziesz w dokumentacji zdarzeń.
Zdarzenia cyklu życia
Jeśli 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 trybie uproszczonym, przekazywanie zdarzeń związanych z cyklem życia jest opcjonalne, z wyjątkiem tych sytuacji:
- Wywołanie funkcji
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 korzystać z 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 lokalizacji, nie musisz wywoływać tych 2 metod.
Obsługiwane funkcje interfejsu API
W tabeli poniżej opisano działanie mapy w trybie uproszczonym w przypadku poszczególnych obszarów funkcjonalności interfejsu API. Jeśli aplikacja wywoła metodę, która nie jest obsługiwana w trybie uproszczonym, interfejs API zarejestruje komunikat ostrzegawczy.
Funkcje | |
---|---|
Typy map | Obsługiwane? Tak
Te typy map są dostępne w interfejsach 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
Funkcja trybu uproszczonego w przypadku kształtów jest zgodna z pełną wersją interfejsu API. |
Odwzorowanie | Obsługiwane? Tak
Funkcja trybu uproszczonego dla projekcji jest zgodna z pełną wersją interfejsu API. |
Moja lokalizacja | Obsługiwane? Tak
Funkcja trybu uproszczonego w przypadku warstwy Moja lokalizacja jest zgodna z pełną wersją interfejsu API. |
Dopełnienie mapy | Obsługiwane? Tak
Obsługa trybu uproszczonego w przypadku wypełnienia mapy jest taka sama jak w przypadku pełnej wersji interfejsu API. |
Okna informacyjne | Obsługiwane? Tak
Jeśli ustawisz title() znacznika, po kliknięciu znacznika przez użytkownika pojawi się domyślne okno informacyjne. Możesz wyświetlić okno informacyjne
programowo, wywołując showInfoWindow() na znaczniku.
Możesz też tworzyć niestandardowe okna informacji za pomocą interfejsuInfoWindowAdapter . |
Niestandardowe style mapy podstawowej | Obsługiwane? częściowo,
Pakiet Maps SDK na Androida obsługuje niestandardowe style mapy bazowej. Tryb uproszczony obsługuje tylko niestandardowe style oparte na formacie JSON, a nie style oparte na chmurze, które wymagają identyfikatora mapy do renderowania mapy ze stylem.
Tryb uproszczony nie obsługuje też ustawienia schematu kolorów mapy na tryb ciemny.
|
Znaczniki | Obsługiwane? częściowo,
Możesz dodać marker i reagować na zdarzenie kliknięcia. Możesz też dodać niestandardowe ikony znaczników. Nie można ustawić znacznika jako elementu, który można przeciągać. Markery 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 pochylenie ani kierunek.
W trybie uproszczonym poziom powiększenia jest zaokrąglany do najbliższej liczby całkowitej.
Rozmowa z użytkownikiem Wywołanie funkcji |
Mapowanie zdarzeń | Obsługiwane? częściowo,
Wersja uproszczona obsługuje Aby wyłączyć zdarzenia kliknięć na mapie w trybie uproszczonym, możesz wywołać funkcję Szczegółowe informacje znajdziesz w dokumentacji zdarzeń. |
Mapy obiektów i budynków | Obsługiwane? Nie
Wersja uproszczona będzie wyświetlać te same kafelki co interfejs Static Maps API.
Oznacza to, że jeśli plan piętra wewnątrz budynku jest wbudowany w domyślny kafelek, będzie on widoczny. W przeciwnym razie nie będzie działać. Nie możesz też zmieniać wyświetlanego poziomu ani manipulować selektorem poziomu. |
Warstwa natężenia ruchu | Obsługiwane? Nie
GoogleMap.setTrafficEnabled() nie jest obsługiwany w trybie uproszczonym. |
Obrazy nad powierzchnią | Obsługiwane? Nie
GoogleMap.addGroundOverlay() nie jest obsługiwany w trybie uproszczonym. |
Nakładki z kafelkami | Obsługiwane? Nie
GoogleMap.addTileOverlay() nie jest obsługiwany w trybie uproszczonym. |
Gesty | 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 | Obsługiwane? Nie
Street View nie jest obsługiwany w trybie uproszczonym. |