Pakiet SDK Map Google na Androida może wyświetlać obraz mapy bitowej mapy, co zapewnia użytkownikowi ograniczoną możliwość interakcji. Jest to tzw. mapa w wersji uproszczonej.
Przykładowe fragmenty kodu
Repozytorium API Demos w GitHubie zawiera przykłady, które pokazują użycie wersji uproszczonej:
- LiteDemoActivity – Java: podstawy korzystania z mapy w wersji uproszczonej w Javie.
- LiteDemoActivity – Kotlin: podstawy korzystania z mapy w wersji uproszczonej w Kotlin.
- LiteListDemoActivity – Java: wydajne wyświetlanie map w obiektach ListView w wersji uproszczonej w języku Java.
- LiteListDemoActivity – Kotlin: wydajne wyświetlanie map w obiektach ListView w wersji uproszczonej w 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 (normalne, hybrydowe, satelitarne, terenowe) oraz podzbiór funkcji zapewnianych w ramach pełnego interfejsu API. Wersja uproszczona przydaje się, gdy chcesz przesłać wiele map w strumieniu lub mapy, które są zbyt małe, aby umożliwić konstruktywną 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 zapytań o wskazówki dojazdu.
Dodawanie mapy w wersji uproszczonej
Wersja uproszczona korzysta z tych samych klas i interfejsów co pełny interfejs API Map Google na Androida. Aby przełączyć urządzenie GoogleMap
na wersję uproszczoną:
- 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
Kotlin
val options = GoogleMapOptions() .liteMode(true)
Java
GoogleMapOptions options = new GoogleMapOptions() .liteMode(true);
Informacje o ustawianiu początkowego stanu mapy znajdziesz w przewodniku po obiekcie mapy.
Zamiar uruchomienia widoku mapy lub żądania wskazówek dojazdu
Domyślnie pasek narzędzi w prawym dolnym rogu mapy zawiera ikony umożliwiające dostęp do widoku mapy lub próśb o wskazówki dojazdu w aplikacji mobilnej Mapy Google. Pasek narzędzi możesz wyłączyć, dzwoniąc pod numer
UiSettings.setMapToolbarEnabled(false)
. Więcej informacji znajdziesz w dokumentacji paska narzędzi.
Poza tym, gdy użytkownik domyślnie kliknie mapę, interfejs API uruchamia aplikację mobilną Mapy Google. Możesz to zmienić, ustawiając własny detektor przy użyciu polecenia GoogleMap.setOnMapClickListener()
. Możesz też wyłączyć zdarzenia kliknięcia na mapie, wywołując metodę 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 związanych z cyklem życia: onCreate()
, onDestroy()
, onResume()
i onPause()
.
Gdy używasz klasy MapView
w wersji uproszczonej, przekazywanie zdarzeń cyklu życia jest opcjonalne, z wyjątkiem tych sytuacji:
- Musisz zadzwonić pod numer
onCreate()
. W przeciwnym razie mapa nie wyświetli się. - Jeśli chcesz wyświetlić kropkę Moja lokalizacja na mapie w wersji uproszczonej i użyć domyślnego źródła lokalizacji, musisz wywołać metodę
onResume()
ionPause()
, ponieważ źródło lokalizacji zostanie zaktualizowane tylko między tymi połączeniami. 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 opisujemy zachowanie mapy w wersji uproszczonej w przypadku każdego obszaru funkcji interfejsu API. Jeśli aplikacja wywoła metodę, która nie jest obsługiwana w wersji uproszczonej, interfejs API zarejestruje komunikat z ostrzeżeniem.
Funkcje | |
---|---|
Typy map | Obsługiwane? Tak
W usługach 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
W przypadku kształtów funkcje wersji uproszczonej są zgodne z pełną wersją interfejsu API. |
Odwzorowanie | Obsługiwane? Tak
W przypadku projekcji funkcje wersji uproszczonej są takie same jak w pełnej wersji interfejsu API. |
Moja lokalizacja | Obsługiwane? Tak
Działanie wersji uproszczonej warstwy Moja lokalizacja odpowiada pełnej wersji interfejsu API. |
Dopełnienie mapy | Obsługiwane? Tak
Obsługa dopełnienia mapy w wersji uproszczonej jest zgodna z pełnym interfejsem API. |
Okna informacyjne | Obsługiwane? Tak
Jeśli ustawisz właściwość title() znacznika, po jego kliknięciu przez użytkownika wyświetli się domyślne okno informacyjne. Okno informacyjne możesz wyświetlić automatycznie, wywołując w znaczniku showInfoWindow() .
Niestandardowe okna informacyjne możesz też tworzyć za pomocą interfejsu InfoWindowAdapter . |
Niestandardowe style mapy podstawowej | Obsługiwane? Częściowo
Pakiet SDK Map Google na Androida obsługuje niestandardowe style mapy podstawowej. Wersja uproszczona obsługuje style niestandardowe oparte na formacie JSON, a nie style oparte na chmurze, które do renderowania mapy z określonym stylem wymagają identyfikatora mapy. |
Znaczniki | Obsługiwane? Częściowo
Możesz dodać znacznik i odpowiedzieć na zdarzenie kliknięcia. Możesz też dodać niestandardowe ikony znaczników. Znacznika nie można przeciągać. Znaczniki na mapie w wersji uproszczonej są płaskie i nie można ich obracać. |
Pozycja, powiększenie i animacja kamery | 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.
Jeśli zadzwonisz pod numer 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 obiektów | Obsługiwane? Nie
W wersji uproszczonej wyświetlają się te same kafelki co Map Static API.
Oznacza to, że jeśli plan piętra we wnętrzu jest zapisany w domyślnym kafelku, będzie widoczny. W przeciwnym razie nie. Nie możesz też zmieniać wyświetlanego poziomu ani korzystać z selektora poziomów. |
Warstwa natężenia ruchu | Obsługiwane? Nie
GoogleMap.setTrafficEnabled() nie jest obsługiwany w wersji uproszczonej. |
Obrazy 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 żadnego efektu. |
Street View | Obsługiwane? Nie
Street View nie jest obsługiwane w wersji uproszczonej. |