Z tego artykułu dowiesz się, jak skonfigurować mapę dodaną do aplikacji na iOS za pomocą pakietu SDK Map Google na iOS.
Opis
Po dodaniu mapy do aplikacji możesz skonfigurować jej początkowe ustawienia i ustawienia w czasie działania. Więcej informacji o dodawaniu kontenera mapy znajdziesz w artykule Dodawanie mapy.
Początkowe ustawienia mapy obejmują:
- Pozycja kamery, w tym: lokalizacja, powiększenie, kierunek i pochylenie kamery. Szczegółowe informacje o pozycjonowaniu kamery znajdziesz w sekcji Kamera i widok.
- Typ mapy.
- Komponenty interfejsu, które mają być wyświetlane, np. przyciski powiększenia i kompas.
- Gesty do włączenia.
Te ustawienia i niektóre ustawienia dodatkowe możesz skonfigurować w środowisku wykonawczym, aktualizując obiekt GMSMapView
.
Typy map
Możesz dostosować mapę, korzystając z jednego z kilku typów mapy. Typ mapy określa jej ogólną reprezentację. Na przykład atlas zwykle zawiera mapy polityczne, które pokazują granice, oraz mapy drogowe, które pokazują wszystkie drogi w danym mieście lub regionie. Pakiet SDK Map Google na iOS udostępnia te typy map:
Typ mapy | |
---|---|
Normalnie | Wartość:
kGMSTypeNormal Typowa mapa drogowa. Przedstawia drogi, niektóre obiekty wybudowane przez ludzi oraz ważne obiekty naturalne, takie jak rzeki. Widoczne są też etykiety dróg i obiektów.
|
Ruch hybrydowy | Wartość:
kGMSTypeHybrid Dane zdjęć satelitarnych z dodanymi mapami dróg. Widoczne są też etykiety dróg i obiektów. |
Satelita | Wartość:
kGMSTypeSatellite Dane zdjęć satelitarnych. Etykiety drogi i obiektów są niewidoczne.
|
Teren | Wartość:
kGMSTypeTerrain Dane topograficzne. Mapa zawiera kolory, linie konturów i etykiety oraz cieniowanie perspektywy. Widoczne są też niektóre drogi i etykiety.
|
Brak | Wartość:
kGMSTypeNone Brak fragmentów mapy. Fragmenty mapy podstawowej nie zostaną wyrenderowane. Ten tryb jest przydatny w połączeniu z warstwami kafelków. Wyświetlanie danych o natężeniu ruchu zostanie wyłączone, gdy typ mapy będzie ustawiony na Brak. |
Zmiana typu mapy
Aby ustawić typ mapy, przypisz nową wartość do właściwości GMSMapView.mapType
. Aby na przykład wyświetlić typ mapy satelitarnej:
Swift
let camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView.map(withFrame: .zero, camera: camera) mapView.mapType = .satellite
Objective-C
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; mapView.mapType = kGMSTypeSatellite;
Poniższy selektor zawiera porównanie map terenu, map normalnych i hybrydowych dla tej samej lokalizacji:
Mapy obiektów
Przy dużym powiększeniu pakiet SDK Map Google na iOS będzie wyświetlał plany pięter budynków wewnętrznych, takich jak lotniska, centra handlowe, duże sklepy i stacje przesiadkowe. Plany pięter budynków są zintegrowane z domyślnymi kafelkami mapy w trybie „normalnym” (kGMSTypeNormal
) i są automatycznie włączane, gdy użytkownik powiększa widok, i zanikają, gdy mapa jest pomniejszona.
Możesz wyłączyć mapy obiektów, ustawiając właściwość indoorEnabled
GMSMapView
na NO
.
Swift
mapView.isIndoorEnabled = false
Objective-C
mapView.indoorEnabled = NO;
Możesz też wyłączyć tylko element sterujący selektora pięter.
Dodawanie planów pięter
Plany pięter są dostępne w wybranych lokalizacjach. Jeśli dane dotyczące planu piętra są niedostępne dla budynku, który chcesz wyróżnić w aplikacji, możesz:
- Dodawać plany pięter bezpośrednio do Map Google. Dzięki temu Twoje plany będą dostępne dla wszystkich użytkowników Map Google.
- Wyświetlać plan piętra jako Nakładkę naziemną. W ten sposób tylko użytkownicy aplikacji będą mogli wyświetlać plany pięter.
Warstwa natężenia ruchu
Możesz umożliwić użytkownikom wyświetlanie mapy z nałożonymi na nią informacjami o natężeniu ruchu. Można w niej zobaczyć wizualne podsumowanie
lokalnego ruchu drogowego w okolicy. Warstwa ruchu możesz włączać i wyłączać, wywołując metodę trafficEnabled
. W poniższym przykładzie pokazano, jak warstwa natężenia ruchu może wyglądać na mapie.
Ułatwienia dostępu
Domyślnie elementy ułatwień dostępu na mapie są ukryte. Ułatwienia dostępu możesz włączyć, ustawiając właściwość accessibilityElementsHidden
GMSMapView
na NO
. Spowoduje to generowanie elementów ułatwień dostępu dla obiektów w nakładkach (takich jak GMSMarker
, okna informacyjne, GMSPolyline
itp.).
Swift
mapView.accessibilityElementsHidden = false
Objective-C
mapView.accessibilityElementsHidden = NO;
Ta właściwość jest zgodna z nieformalnym protokołem UIAccessibility
. Jedyna różnica jest taka, że domyślna wartość w pakiecie SDK Map Google na iOS to YES
.
Moja lokalizacja
Domyślnie na mapie nie są wyświetlane żadne dane o lokalizacji. Możesz włączyć niebieski punkt „Moja lokalizacja” i kierunek kompasu, ustawiając myLocationEnabled
w opcji GMSMapView
.
Swift
mapView.isMyLocationEnabled = true
Objective-C
mapView.myLocationEnabled = YES;
Włączenie tej funkcji umożliwi też przekazanie informacji o bieżącej lokalizacji użytkownika za pomocą właściwości myLocation
. Ta właściwość może nie być od razu dostępna, np. jeśli użytkownik zostanie poproszony przez system iOS o zezwolenie na dostęp do danych. W tym przypadku
będzie to zero.
Swift
print("User's location: \(String(describing: mapView.myLocation))")
Objective-C
NSLog(@"User's location: %@", mapView.myLocation);
Budynki 3D
W wielu miastach oglądanych z bliska widać budynki 3D, np. na zdjęciu Seattle w stanie Waszyngton.

Aby wyłączyć budynki 3D, ustaw odpowiednią właściwość GMSMapView
w komponencie Swift lub Objective-C, jak pokazano poniżej:
Swift
mapView.isBuildingsEnabled = false
Objective-C
[mapView setBuildingsEnabled:NO];
Dopełnienie mapy
Mapa Google wypełnia cały region zdefiniowany w polu GMSMapView
. Kilka aspektów wyglądu i działania mapy zależy od wymiarów widoku:
- Cel kamery będzie odbijał się w środku wyściełanego obszaru.
- Elementy sterujące mapy są umieszczane względem krawędzi mapy.
- Informacje prawne, takie jak oświadczenia o prawach autorskich lub logo Google, wyświetlają się przy dolnej krawędzi mapy.
Dopełnienie krawędzi mapy możesz dodać za pomocą polecenia GMSMapView
.padding
. Mapa nadal wypełnia cały kontener, ale tekst i kontrola pozycji, gesty mapowania i ruchy kamery będą się zachowywać tak, jakby została umieszczona w mniejszym miejscu. Powoduje to następujące zmiany:
- Ruch kamery przez wywołania interfejsu API lub naciśnięcia przycisków (np. kompas lub moja lokalizacja) będzie odnosił się do obszaru z wypełnieniem.
GMSMapView
.projection
zwróci prognozę obejmującą tylko region z dopełnieniem.- Elementy sterujące interfejsu zostaną odsunięte od krawędzi kontenera o podaną liczbę punktów.
Dopełnienie może być przydatne przy projektowaniu interfejsów użytkownika, które nakładają się na pewien fragment mapy. Na przykład na obrazie poniżej mapa jest dopełniona wzdłuż górnej i prawej krawędzi. Wzdłuż krawędzi dopełnionego obszaru widoczne będą widoczne elementy sterujące mapą i tekst prawny, oznaczony kolorem zielonym, a mapa będzie nadal wypełniać cały kontener (kolor niebieski). W tym przykładzie możesz przesunąć menu po prawej stronie mapy, nie zasłaniając elementów sterujących.
Aby dodać dopełnienie do mapy, utwórz obiekt UIEdgeInsets
i przekaż go do obiektu GMSMapView
.padding
.
Swift
// Insets are specified in this order: top, left, bottom, right let mapInsets = UIEdgeInsets(top: 100.0, left: 0.0, bottom: 0.0, right: 300.0) mapView.padding = mapInsets
Objective-C
// Insets are specified in this order: top, left, bottom, right UIEdgeInsets mapInsets = UIEdgeInsetsMake(100.0, 0.0, 0.0, 300.0); mapView.padding = mapInsets;