Sterowanie i gesty

Wybierz platformę: Android iOS JavaScript

Dzięki pakietowi Maps SDK na Androida możesz dostosować sposób, w jaki użytkownicy mogą wchodzić w interakcję z mapą. Możesz określić, które z wbudowanych komponentów UI mają się wyświetlać na mapie, oraz które gesty są dozwolone.

Przykładowe fragmenty kodu

Repozytorium ApiDemos na GitHubie zawiera przykład, który demonstruje użycie opcji sterowania i gestyk:

Wersja uproszczona dla minimalnej interakcji użytkownika

Jeśli chcesz mieć lekką mapę z minimalną interakcją użytkownika, rozważ użycie mapy w trybie uproszczonym. Tryb uproszczony wyświetla mapę w postaci obrazu bitmapowego w określonym miejscu i przy określonym poziomie powiększenia. W trybie uproszczonym użytkownicy nie mogą przesuwać mapy ani jej powiększać, a gesty nie działają. Więcej informacji znajdziesz w przewodniku dotyczącym trybu Lite.

Elementy sterujące w interfejsie

Interfejs API Map oferuje wbudowane elementy sterujące podobne do tych, które znajdziesz w aplikacji Mapy Google na telefonie z Androidem. Widoczność tych elementów możesz włączać i wyłączać za pomocą klasy UiSettings, którą można uzyskać z elementu GoogleMap za pomocą metody GoogleMap.getUiSettings. Zmiany wprowadzone w tej klasie są natychmiast odzwierciedlane na mapie. Przykłady tych funkcji znajdziesz w demonstracji ustawień interfejsu w przykładowej aplikacji.

Większość z tych opcji możesz też skonfigurować podczas tworzenia mapy, korzystając z atrybutów XML lub klasy GoogleMapOptions. Więcej informacji znajdziesz w sekcji Konfigurowanie stanu początkowego.

Każdy element interfejsu ma z góry ustaloną pozycję względem krawędzi mapy. Możesz przesunąć elementy sterujące od górnej, dolnej, lewej lub prawej krawędzi, dodając padding do obiektu GoogleMap.

Elementy sterujące powiększeniem

Interfejs Maps API udostępnia wbudowane elementy sterujące powiększaniem i pomniejszaniem, które pojawiają się w prawym dolnym rogu mapy. Domyślnie są one wyłączone, ale można je włączyć, wywołując funkcję UiSettings.setZoomControlsEnabled(true).

Elementy sterujące powiększeniem

Kompas

Interfejs Map API udostępnia grafikę kompasu, która w określonych okolicznościach pojawia się w lewym górnym rogu mapy. Kompas pojawi się tylko wtedy, gdy kamera będzie ustawiona w taki sposób, że będzie miała niezerową orientację lub niezerowy kąt nachylenia. Gdy użytkownik kliknie kompas, kamera powróci do pozycji z zerowym kierunkiem i zerowym pochyleniem (orientacja domyślna), a kompas zniknie. Możesz całkowicie wyłączyć kompas, dzwoniąc pod numer UiSettings.setCompassEnabled(boolean). Nie możesz jednak wymusić wyświetlania kompasu przez cały czas.

Kompas

Przycisk Moja lokalizacja

Przycisk Moja lokalizacja pojawia się w prawym górnym rogu ekranu tylko, gdy włączona jest warstwa Moja lokalizacja. Szczegółowe informacje znajdziesz w przewodniku dotyczącym danych o lokalizacji.

Przycisk Moja lokalizacja

Selektor poziomu

Domyślnie selektor poziomów (selektor pięter) pojawia się w pobliżu prawej krawędzi ekranu, gdy użytkownik wyświetla mapę wewnętrzną. Gdy widoczne są co najmniej 2 mapy wewnętrzne, selektor poziomów będzie dotyczył budynku, który jest aktualnie w centrum uwagi, czyli zwykle budynku najbliższego środkowi ekranu. Każdy budynek ma domyślny poziom, który zostanie wybrany, gdy po raz pierwszy wyświetli się selektor. Użytkownicy mogą wybrać inny poziom, wybierając go w selektorze.

Możesz wyłączyć lub włączyć kontrolę selektora poziomu, wywołując funkcję GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(boolean).

To przydatne, jeśli chcesz zastąpić domyślny selektor poziomów własnym.

Selektor poziomu

Pasek narzędzi mapy

Gdy użytkownik kliknie znacznik, w prawym dolnym rogu mapy pojawi się pasek narzędzi. Pasek narzędzi zapewnia użytkownikowi szybki dostęp do aplikacji mobilnej Mapy Google.

Pasek narzędzi możesz włączyć i wyłączyć, wywołując funkcję UiSettings.setMapToolbarEnabled(boolean).

W mapie w trybie uproszczonym pasek narzędzi pozostaje widoczny niezależnie od działań użytkownika. Na mapie w pełni interaktywnej pasek narzędzi wysuwa się, gdy użytkownik kliknie znacznik, i chowa się, gdy znacznik nie będzie już na pierwszym planie.

Pasek narzędzi zawiera ikony, które umożliwiają wyświetlanie widoku mapy lub żądania trasy w aplikacji mobilnej Mapy Google. Gdy użytkownik kliknie ikonę na pasku narzędzi, interfejs API tworzy intencję, aby uruchomić odpowiednią czynność w aplikacji mobilnej Mapy Google.

Pasek narzędzi mapy

Na powyższym zrzucie ekranu pasek narzędzi jest widoczny w prawym dolnym rogu mapy. Na mapie może pojawić się 0, 1 lub obie ikony intencji, w zależności od treści mapy i o ile aplikacja mobilna Mapy Google obsługuje daną intencję.

Gesty na mapie

Mapa utworzona za pomocą pakietu Maps SDK na Androida obsługuje te same gesty co aplikacja Mapy Google. Mogą jednak wystąpić sytuacje, w których chcesz wyłączyć określone gesty, aby zachować stan mapy. Powiększenie, przesuwanie, pochylanie i kierunek można też ustawić programowo. Więcej informacji znajdziesz w sekcji Kamera i widok. Pamiętaj, że wyłączenie gestów nie ma wpływu na to, czy możesz zmienić pozycję kamery za pomocą kodu.

Podobnie jak w przypadku elementów sterujących interfejsem, gesty możesz włączać i wyłączać za pomocą klasy UiSettings, którą można uzyskać z elementu GoogleMap, wywołując funkcję GoogleMap.getUiSettings. Zmiany wprowadzone w tej klasie są natychmiast odzwierciedlane na mapie. Przykłady tych funkcji znajdziesz w demonstracji ustawień UI w próbnej aplikacji (jak ją zainstalować, dowiesz się tutaj).

Te opcje możesz też skonfigurować podczas tworzenia mapy za pomocą atrybutów XML lub klasy GoogleMapOptions. Więcej informacji znajdziesz w artykule Konfigurowanie mapy.

Gesty powiększania

Mapa reaguje na różne gesty, które mogą zmieniać poziom powiększenia kamery:

  • Kliknij dwukrotnie, aby zwiększyć poziom powiększenia o 1 (powiększenie).
  • Kliknij 2 palcami, aby zmniejszyć poziom powiększenia o 1 (zmniejszanie powiększenia).
  • Zbliżanie/oddalanie dwoma palcami
  • Powiększanie jednym palcem polega na kliknięciu dwukrotnie, ale nie zwalnianiu palca po drugim kliknięciu, a następnie przesunięciu palca w górę, aby pomniejszyć obraz, lub w dół, aby go powiększyć.

Aby wyłączyć gesty zoomowania, zadzwoń do UiSettings.setZoomGesturesEnabled(boolean). Nie wpłynie to na to, czy użytkownik może używać elementów sterujących powiększania i pomniejszania.

Gesty przewijania (przesuwania)

Użytkownik może przewijać (przesuwać) mapę, przeciągając ją palcem. Aby wyłączyć przewijanie, wybierz UiSettings.setScrollGesturesEnabled(boolean).

Gesty pochylania

Użytkownik może przechylić mapę, umieszczając na niej 2 palce i przesuwając je w dół lub w górę, aby odpowiednio zwiększyć lub zmniejszyć kąt nachylenia. Możesz wyłączyć gesty pochylania, wywołując UiSettings.setTiltGesturesEnabled(boolean).

Gesty obracania

Użytkownik może obrócić mapę, umieszczając na niej 2 palce i wykonując ruch obrotowy. Aby wyłączyć rotację, zadzwoń pod numer UiSettings.setRotateGesturesEnabled(boolean).