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:
- 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. W wersji uproszczonej dostępny jest obraz bitmapy mapy w określonej lokalizacji i powiększeniu. W wersji uproszczonej 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 interfejsu
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 padding do obiektu GoogleMap
.
Elementy sterujące powiększeniem
Interfejs API Map Google udostępnia wbudowane elementy sterujące powiększeniem, które są wyświetlane 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. Wyświetlanie kompasu możesz całkowicie wyłączyć, wywołując funkcję 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 po 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 selektor zostanie wyświetlony po raz pierwszy. Użytkownicy mogą wybrać inny poziom, wybierając go z selektora.
Możesz wyłączyć lub włączyć kontrolę selektora poziomu, wywołując funkcję GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(boolean)
.
Jest 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 wersji uproszczonej pasek narzędzi działa niezależnie od działań użytkownika. Na mapie w trybie interaktywnym pasek narzędzi wysuwa się, gdy użytkownik kliknie znacznik, i chowa się, gdy znacznik nie będzie już w centrum uwagi.
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żna automatycznie zmienić położenie kamery.
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 GoogleMap.getUiSettings
. Zmiany wprowadzone w tych zajęciach
są od razu widoczne 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ększenia
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/rozszerzanie 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)
.