Wersja uproszczona

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:

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 lub MapFragment.
  • 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()onPause().

Gdy używasz klasy MapViewtrybie 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()onPause(), 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()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 GoogleMap.moveCamera() spowoduje wyświetlenie kolejnego obrazu mapy w trybie uproszczonym. Więcej informacji o ustawianiu i obsłudze kamery znajdziesz w sekcji Zmiana widoku.

Wywołanie funkcji GoogleMap.animateCamera() nie spowoduje animacji ruchu kamery. Widok z kamery natychmiast przesunie się do nowej pozycji.

Mapowanie zdarzeń
Obsługiwane? częściowo,

Wersja uproszczona obsługuje GoogleMap.setOnMapClickListener() i GoogleMap.setOnMapLongClickListener().

Aby wyłączyć zdarzenia kliknięć na mapie w trybie uproszczonym, możesz wywołać funkcję setClickable() w widoku zawierającym element MapView lub MapFragment. Jest to przydatne np. podczas wyświetlania map w widoku listy, gdy chcesz, aby kliknięcie wywoływało działanie niezwiązane z mapą.

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.