Maps SDK na Androida umożliwia wyświetlanie mapy bitowej mapy, co zapewnia użytkownikom ograniczoną interaktywność. Jest to tzw. mapa wersja uproszczona.
Przykładowe fragmenty kodu
Repozytorium ApiDemos w GitHubie zawiera przykłady, które pokazują użycie wersji uproszczonej:
- LiteDemoActivity – Java: podstawy korzystania z mapy w wersji uproszczonej w języku Java.
- LiteDemoActivity – Kotlin: podstawy korzystania z mapy Lite w Kotlinie
- LiteListDemoActivity – Java: efektywne wyświetlanie map w widokach list przy użyciu wersji uproszczonej w języku Java.
- LiteListDemoActivity – Kotlin: efektywne wyświetlanie map w widoku listy za pomocą wersji uproszczonej
Omówienie wersji uproszczonej
Mapa w trybie uproszczonym to bitmapa mapy z określoną lokalizacją i z powiększeniem. Wersja uproszczona obsługuje wszystkie typy map (normalne, hybrydowe, satelitarne i teren) oraz podzbiór funkcji dostępnych w pełnym API. Wersja uproszczona przydaje się, gdy chcesz udostępnić w strumieniu liczbę map lub mapę, która jest zbyt mała, by można było nawiązać znaczącą interakcję.
Użytkownicy wyświetlający mapę nie mogą jej powiększać ani przesuwać. Ikony na mapie pozwalają użytkownikom wyświetlać mapę w aplikacji mobilnej Mapy Google i prosić o wskazówki dojazdu.
Dodawanie mapy w wersji uproszczonej
Wersja uproszczona wykorzystuje te same klasy i interfejsy co pełny interfejs API Map Google na Androida. W GoogleMap
możesz ustawić wersję uproszczoną w ten sposób:
- Jako atrybut XML dla
MapView
lubMapFragment
- 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
Java
GoogleMapOptions options = new GoogleMapOptions() .liteMode(true);
Kotlin
val options = GoogleMapOptions() .liteMode(true)
Szczegółowe informacje o tym, jak ustawić początkowy stan mapy, znajdziesz w przewodniku po obiektie mapy.
Intencje uruchomienia widoku mapy lub żądania trasy
Domyślnie pasek narzędzi w prawym dolnym rogu mapy zawiera ikony, które umożliwiają dostęp do widoku mapy lub wskazówek dojazdu w aplikacji mobilnej Mapy Google. Możesz wyłączyć ten pasek, wywołując ikonę UiSettings.setMapToolbarEnabled(false)
. Więcej informacji znajdziesz w dokumentacji paska narzędzi.
Domyślnie, gdy użytkownik kliknie mapę, API uruchamia aplikację mobilną Mapy Google. Możesz zastąpić ten parametr za pomocą polecenia GoogleMap.setOnMapClickListener()
, aby ustawić własny odbiornik. Możesz też wyłączyć zdarzenia kliknięcia na mapie, wywołując setClickable()
w widoku zawierającym MapView
lub MapFragment
. Szczegółowe informacje na temat tych 2 metod znajdziesz w dokumentacji zdarzeń.
Zdarzenia cyklu życia
Gdy interfejs API jest używany w trybie w pełni interaktywnym, użytkownicy klasy MapView
muszą przekazywać wszystkie metody cyklu życia aktywności na odpowiednie metody klasy MapView
. Oto przykłady metod cyklu życia: onCreate()
, onDestroy()
, onResume()
i onPause()
.
W przypadku klasy MapView
w wersji uproszczonej przekazywanie zdarzeń cyklu życia jest opcjonalne, z wyjątkiem tych sytuacji:
- Wywołanie
onCreate()
jest obowiązkowe. W przeciwnym razie nie pojawi się żadna mapa. - Jeśli chcesz wyświetlić kropkę mojej lokalizacji na mapie w wersji uproszczonej i użyć domyślnego źródła, musisz wywołać metodę
onResume()
ionPause()
, bo źródło lokalizacji jest aktualizowane tylko między tymi wywołaniami. Jeśli korzystasz ze swojego źródła danych o lokalizacji, nie musisz wywoływać tych 2 metod.
Obsługiwane funkcje interfejsu API
W tabeli poniżej opisujemy działanie mapy Lite 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
Dostępne w usługach GoogleMapOptions.mapType() i GoogleMap.setMapType() są te typy map: MAP_TYPE_NORMAL , MAP_TYPE_SATELLITE , MAP_TYPE_TERRAIN , MAP_TYPE_HYBRID , MAP_TYPE_NONE |
Linie, wielokąty, okręgi | Obsługiwane? Tak
Funkcja w wersji uproszczonej kształtów pasuje do pełnego interfejsu API. |
Odwzorowanie | Obsługiwane? Tak
Funkcja w wersji uproszczonej projektu Projekcja pasuje do pełnego interfejsu API. |
Moja lokalizacja | Obsługiwane? Tak
Funkcja w wersji uproszczonej warstwy Moja lokalizacja jest zgodna z pełnym interfejsem API. |
Dopełnienie mapy | Obsługiwane? Tak
Obsługa dopełniania mapy w wersji uproszczonej pasuje do pełnego interfejsu API. |
Okna informacyjne | Obsługiwane? Tak
Jeśli ustawisz title() znacznika, wyświetli się domyślne okno informacyjne, gdy użytkownik kliknie znacznik. Okno informacyjne możesz wyświetlać automatycznie, wywołując showInfoWindow() na znaczniku.
Niestandardowe okna informacyjne możesz też tworzyć w interfejsie InfoWindowAdapter . |
Niestandardowe style mapy podstawowej | Obsługiwane? Częściowo
Maps SDK na Androida obsługuje niestandardowy styl mapy podstawowej. Wersja uproszczona obsługuje tylko style niestandardowe oparte na JSON, a nie style działające w chmurze. Do renderowania mapy stylowej potrzebny jest identyfikator mapy. |
Znaczniki | Obsługiwane? Częściowo
Możesz dodać znacznik i odpowiedzieć na zdarzenie kliknięcia. Możesz też dodać niestandardowe ikony znaczników. Przeciągania znacznika nie można wykonać. 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ć kierowanie i powiększanie kamery, ale nie możesz przechylać ani przyciągać łożyska.
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ć Szczegółowe informacje znajdziesz w dokumentacji zdarzeń. |
Mapy i budynki budynków | Obsługiwane? Nie
Wersja uproszczona pokazuje te same kafelki co interfejs Maps Static API.
To oznacza, że jeśli układ piętra jest zamontowany w domyślnym kafelku, pojawi się on. W przeciwnym razie nie. Nie możesz też zmieniać wyświetlanego poziomu ani wybierać selektora poziomu. |
Warstwa natężenia ruchu | Obsługiwane? Nie
Wersja GoogleMap.setTrafficEnabled() nie jest obsługiwana w wersji uproszczonej. |
Nakładki na powierzchni | Obsługiwane? Nie
GoogleMap.addGroundOverlay() nie jest obsługiwany w wersji uproszczonej. |
Nakładki z fragmentami mapy | Obsługiwane? Nie
GoogleMap.addTileOverlay() nie jest obsługiwany 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 skutków. |
Street View | Obsługiwane? Nie
Street View nie jest obsługiwane w wersji uproszczonej. |