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 interfejsu użytkownika mają się wyświetlać na mapie, oraz jakie gesty są dozwolone.
Przykładowe fragmenty kodu
Repozytorium ApiDemos na GitHubie zawiera przykład, który demonstruje użycie opcji sterowania i gestyk:
- UiSettingsDemoActivity: przykładowy kod w Kotlinie
- UiSettingsDemoActivity: przykład w języku Java
Tryb uproszczony dla minimalnej interakcji z użytkownikiem
Jeśli chcesz mieć lekką mapę z minimalną interakcją użytkownika, rozważ użycie mapy w trybie uproszczonym. Tryb Lite wyświetla mapę w postaci obrazu bitmapowego w określonym miejscu i poziomie powiększenia. W trybie uproszczonym użytkownicy nie mogą przesuwać mapy ani jej przybliżać, a gesty nie działają. Szczegółowe informacje znajdziesz w przewodniku dotyczącym trybu Lite.
Elementy sterujące w interfejsie
Interfejs API Map oferuje wbudowane elementy sterujące interfejsem użytkownika, które są podobne do tych, które można znaleźć w aplikacji Mapy Google na telefonie z Androidem. Widoczność tych elementów możesz przełączać za pomocą klasy UiSettings
, którą można uzyskać z elementu GoogleMap
za pomocą metody GoogleMap.getUiSettings
. Zmiany wprowadzone w tej klasie są od razu widoczne na mapie. Aby zobaczyć przykłady tych funkcji, zapoznaj się z demonstracją ustawień UI 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óry, dołu, lewej lub prawej krawędzi, dodając margines 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)
.
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.
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.
Selektor poziomu
Domyślnie, gdy użytkownik wyświetla mapę wewnętrzną, w pobliżu prawej krawędzi ekranu wyświetla się selektor poziomu (piętra). Gdy widoczne są co najmniej 2 mapy wewnątrz budynków, selektor poziomów będzie dotyczył budynku, który jest obecnie 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.
Pasek narzędzi mapy
Domyślnie, 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 znów się wsuwa, gdy znacznik nie jest 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.
Na powyższym zrzucie ekranu pasek narzędzi jest widoczny w prawym dolnym rogu mapy. Na mapie może pojawić się 0, 1 lub 2 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 elementy sterujące interfejsem, gesty możesz włączać i wyłączać za pomocą klasy UiSettings
, którą można uzyskać z 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 przykładowej aplikacji (sposób jej zainstalowania znajdziesz 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.
Możesz wyłączyć przewijanie, dzwoniąc pod numer
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. Możesz wyłączyć rotację, dzwoniąc na numer UiSettings.setRotateGesturesEnabled(boolean)
.