W tym omówieniu dowiesz się, jak skonfigurować mapę, która została dodana do aplikacji na iOS za pomocą pakietu Maps SDK na iOS.
Omówienie
Po dodaniu mapy do aplikacji możesz skonfigurować opcje początkowe i czas działania ustawienia mapy. Szczegółowe informacje o dodawaniu kontenera mapy znajdziesz w sekcji Dodawanie kontenera mapy .
Początkowe ustawienia mapy obejmują następujące elementy:
- Położenie kamery, w tym lokalizacja, powiększenie, położenie i nachylenie. Zobacz Kamera i widok – szczegółowe informacje na temat pozycjonowania kamery.
- Kolor tła mapy.
- Typ mapy.
- komponenty interfejsu do wyświetlenia, takie jak przyciski powiększenia czy kompas.
- Gesty, które chcesz włączyć.
Te ustawienia oraz niektóre ustawienia dodatkowe można skonfigurować w czasie działania
aktualizowanie
GMSMapView
obiektu.
Opcje mapy
Podczas inicjowania widoku mapy opcje konfiguracji są ustawiane za pomocą
GMSMapViewOptions
Właściwości opcji to frame
, camera
, mapID
lub
backgroundColor
Opcje mapy | |
---|---|
ramka | Wartość:
CGRect Ramka mapy. Wartość domyślna to CGRectZero.
|
aparat | Wartość:
GMSCameraPosition Domyślna pozycja kamery do mapy.
|
mapID | Wartość:
GMSMapID Identyfikator mapy Google. Parametr opcjonalny.
|
backgroundColor | Wartość:
UIColor Domyślna wartość to UIColor.lightGray
|
Skonfiguruj opcje mapy
Możesz ustawić własne właściwości opcji lub przekazać instancję
GMSMapViewOptions
z wartościami domyślnymi bezpośrednio na GMSMapView
.
Swift
let options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView(options:options)
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
Oto przykład przekazywania obiektu GMSMapViewOptions
z wartościami domyślnymi
bezpośrednio na adres GMSMapView
.
Swift
let options = GMSMapViewOptions() let mapView = GMSMapView(options:options) //initialized with default values
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; //initialized with default values
Skonfiguruj kolor tła
Podczas pracy w trybie ciemnym lub przełączania się między widokami mapy przydatne może być
zastąpi domyślny kolor tła mapy. Aby to zrobić, ustaw parametr
opcje mapy: backgroundColor
.
Swift
let options = GMSMapViewOptions() options.backgroundColor = UIColor.yellowColor let mapView = GMSMapView(options:options)
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.backgroundColor = UIColor.yellowColor; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
Typy map
Możesz dostosować swoją mapę, korzystając z jednego z kilku typów map. Typ mapy określa ogólny obraz mapy. Na przykład atlas zawiera zazwyczaj polityczne, które koncentrują się na wskazywaniu granic, a także mapy drogowe, które pokazują wszystkich dróg w mieście lub regionie. Pakiet Maps SDK na iOS następujące typy map:
Typ mapy | |
---|---|
Normalnie | Wartość:
kGMSTypeNormal Typowa mapa drogowa. Pokazuje drogi, niektóre obiekty wybudowane przez
ludzi i ważne obiekty naturalne, takie jak rzeki. Etykiety dróg i obiektów
również są widoczne. Obsługuje ustawianie schematu kolorów mapy na ciemny, jasny
lub zastosować ustawienia systemowe.
|
Ruch hybrydowy | Wartość:
kGMSTypeHybrid Dane zdjęć satelitarnych z dodanymi mapami. Droga i obiekt
etykiety też są widoczne. |
Satelita | Wartość:
kGMSTypeSatellite Dane zdjęć satelitarnych. Etykiety dróg i obiektów nie są
widoczne.
|
Teren | Wartość:
kGMSTypeTerrain Dane topograficzne. Mapa zawiera kolory, linie konturowe i etykiety,
i cieniowanie perspektywy. Widoczne są też niektóre drogi i etykiety. Obsługiwane
przez ustawienie schematu kolorów mapy na ciemny lub jasny albo zgodnie z ustawieniami systemowymi.
|
Brak | Wartość:
kGMSTypeNone Brak fragmentów mapy. Fragmenty mapy podstawowej nie zostaną renderowane. Ten tryb jest
przydatny w połączeniu z kafelkiem
warstwach. Wyświetlanie danych o natężeniu ruchu jest wyłączone, gdy typ mapy to
ustaw na brak. |
Zmiana typu mapy
Aby ustawić typ mapy, przypisz nową wartość do parametru GMSMapView.mapType
usłudze. Aby na przykład wyświetlić typ mapy satelitarnej:
Swift
let options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView(options:options) mapView.mapType = .satellite
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; mapView.mapType = kGMSTypeSatellite;
Selektor poniżej zawiera porównanie terenu, mapy normalnej i hybrydowej dla: ta sama lokalizacja:
Mapy obiektów
Przy dużym powiększeniu pakiet SDK Maps na iOS pokazuje plany pięter
w obiektach takich jak lotniska, centra handlowe, duże sklepy i środki transportu publicznego.
kilku stacji. Plany pięter wnętrz są zintegrowane z domyślnymi kafelkami mapy
„normalny” (kGMSTypeNormal
) i są automatycznie włączone, gdy
użytkownik powiększa i znika, gdy mapa jest pomniejszona.
Możesz wyłączyć mapy obiektów, ustawiając właściwość indoorEnabled
dla
GMSMapView
do NO
.
Swift
mapView.isIndoorEnabled = false
Objective-C
mapView.indoorEnabled = NO;
Możesz też wyłączyć tylko Selektor pięter.
Dodaję plany pięter
Plany pięter są dostępne w wybranych krajach lokalizacji. Jeśli dane planu piętra są niedostępne dla budynku, który chcesz możesz:
- Dodaj piętro abonamenty bezpośrednio w Mapach Google. Dzięki temu Twoje abonamenty będą dostępne dla wszystkich użytkowników Mapy Google.
- wyświetlać plan pięter jako nałożenie terenu, Włącza to tylko użytkownikom aplikacji, aby zobaczyć plany pięter.
Warstwa natężenia ruchu
Możesz umożliwić użytkownikom wyświetlanie mapy z uwzględnieniem natężenia ruchu
nałożone na nią informacje. W ten sposób uzyskasz wizualne podsumowanie
sytuacji w ruchu lokalnym. Aby włączyć lub wyłączyć warstwę natężenia ruchu, zadzwoń do
trafficEnabled
. Poniższy przykład pokazuje, 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. Możesz włączyć
ułatwienia dostępu przez ustawienie właściwości accessibilityElementsHidden
dla
GMSMapView
do NO
. Powoduje to, że elementy ułatwień dostępu są generowane dla
obiektów nakładanych (takich jak GMSMarker
, okna informacyjne i GMSPolyline
itd.).
Swift
mapView.accessibilityElementsHidden = false
Objective-C
mapView.accessibilityElementsHidden = NO;
Ta usługa jest zgodna z nieformalnym protokołem UIAccessibility
, z tym że
domyślna wartość w pakiecie Maps SDK na iOS to YES
.
Moja lokalizacja
Domyślnie na mapie nie wyświetlają się żadne dane o lokalizacji. Możesz włączyć niebieski link
Lokalizacja kierunek kropki i kompasu po włączeniu opcji myLocationEnabled
GMSMapView
Swift
mapView.isMyLocationEnabled = true
Objective-C
mapView.myLocationEnabled = YES;
Po włączeniu tej funkcji użytkownik może sprawdzać bieżącą lokalizację w
myLocation
. Ta usługa może być niedostępna od razu – w okresie
np. gdy iOS poprosi użytkownika o zgodę na dostęp do tych danych. Jest
nil
.
Swift
print("User's location: \(String(describing: mapView.myLocation))")
Objective-C
NSLog(@"User's location: %@", mapView.myLocation);
Budynki 3D
W wielu miastach przy oglądaniu z bliska będą widoczne budynki 3D, na zdjęciu Seattle w stanie Waszyngton.
Możesz wyłączyć budynki 3D, ustawiając odpowiednie
GMSMapView
w środowisku Swift lub Objective-C, jak poniżej:
Swift
mapView.isBuildingsEnabled = false
Objective-C
[mapView setBuildingsEnabled:NO];
Dopełnienie mapy
Mapa Google została zaprojektowana tak, aby wypełnić cały region zdefiniowany przez GMSMapView
.
Kilka aspektów wyglądu i zachowania mapy jest zdefiniowanych przez wymiary
widoku:
- Cel aparatu odbija środek wyściełanego obszaru.
- Elementy sterujące mapy znajdują się względem krawędzi mapy.
- Pojawią się informacje prawne, takie jak oświadczenia dotyczące praw autorskich lub logo Google. wzdłuż dolnej krawędzi mapy.
Możesz dodać dopełnienie wokół krawędzi mapy za pomocą
GMSMapView
padding
. Mapa nadal wypełnia się
całego kontenera, ale też tekst i elementy sterujące pozycjonowaniem, gestami na mapie i aparatem
porusza się tak, jakby urządzenie zostało umieszczone w mniejszej przestrzeni. Powoduje to
następujące zmiany:
- Ruchy kamery wymagające wywołań interfejsu API lub naciśnięć przycisku (np. kompas, lokalizacji) są ustalane względem obszaru dopełnionego.
GMSMapView
.projection
zwraca prognozę obejmującą tylko dopełnienie i regionie.- Elementy sterujące interfejsu są odsunięte od krawędzi kontenera o określony liczby punktów.
Dopełnienie może być pomocne przy projektowaniu interfejsów, które nakładają się na część mapy. Na przykład na zdjęciu mapa jest wyściełana wzdłuż górnej i prawej krawędzi. Widoczne elementy sterujące mapą i tekst prawny są wyświetlane wzdłuż krawędzi wypełnienia wyświetlany na zielono, gdy mapa wypełnia cały kontener, zaznaczone na niebiesko. W tym przykładzie możesz umieścić menu po prawej stronie nie zasłaniając elementów sterujących mapy.
Aby dodać dopełnienie do mapy, utwórz obiekt UIEdgeInsets
i przekaż go do
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;
Schemat kolorów mapy
W przypadku map typu normalnego i terenu możesz ustawić schemat kolorów mapy na ciemny, żarówki lub bieżące ustawienia systemu. Możesz na przykład przyciemnić lub rozjaśnij schemat kolorów mapy w zależności od pory dnia albo przeznaczenia wewnątrz budynku lub na zewnątrz. od urządzenia.
Użyj formatu GMSMapView
overrideUserInterfaceStyle:
aby ustawić i zaktualizować schemat kolorów mapy.
Swift
let options = GMSMapViewOptions() // Map is init to use light mode by default. let mapView = GMSMapView(options: options) // Set map to use dark mode. mapView.overrideUserInterfaceStyle = .dark // Set map to use light mode. mapView.overrideUserInterfaceStyle = .light // Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle mapView.overrideUserInterfaceStyle = .unspecified
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; // Map is init to always use light mode. GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; // Set map to use dark mode. mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleDark; // Set map to use light mode. mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight; // Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleUnspecified;