Wersja uproszczona

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 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 wiele 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 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 uruchomienia 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 funkcję 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ń cyklu ż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 używać 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
Polilinie, 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 dla 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 programowo wyświetlić okno informacyjne, wywołując metodę 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. W trybie uproszczonym nie można też ustawić 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ż dodawać niestandardowe ikony znaczników. Nie można przeciągać znacznika. 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. Po wywołaniu GoogleMap.moveCamera() otrzymasz kolejny obraz 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ć setClickable() w widoku zawierającym MapView lub MapFragment. Jest to przydatne na przykład 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.
Nakładki na teren
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.