In dieser Übersicht wird beschrieben, wie Sie eine Karte konfigurieren, die einer iOS-App hinzugefügt wurde. mithilfe des Maps SDK for iOS.
Übersicht
Nachdem Sie Ihrer App eine Karte hinzugefügt haben, können Sie Anfangsoptionen und Laufzeit konfigurieren Einstellungen der Karte. Weitere Informationen zum Hinzufügen eines Kartencontainers finden Sie im Hilfeartikel Einen Kartencontainer hinzufügen Karte.
Zu den Anfangseinstellungen einer Karte gehören:
- Kameraposition einschließlich Standort, Zoomfaktor, Ausrichtung und Neigung; Weitere Informationen zur Positionierung der Kamera finden Sie unter Kamera und Ansicht.
- Die Hintergrundfarbe der Karte.
- Kartentyp
- Anzuzeigende UI-Komponenten wie die Zoomschaltflächen und Kompass.
- Zu aktivierende Touch-Gesten
Während der Laufzeit können Sie diese und einige zusätzliche Einstellungen konfigurieren, indem Sie
Aktualisierung des
GMSMapView
-Objekt enthält.
Kartenoptionen
Beim Initialisieren der Kartenansicht werden Konfigurationsoptionen mit
GMSMapViewOptions
Zu den Optionsattributen gehören frame
, camera
, mapID
oder
backgroundColor
.
Kartenoptionen | |
---|---|
Rahmen | Wert:
CGRect Der Kartenrahmen. Die Standardeinstellung ist CGRectZero.
|
Kamera | Wert:
GMSCameraPosition Die standardmäßige Kameraposition der Karte.
|
mapID | Wert:
GMSMapID Google-Karten-ID. Optionaler Parameter.
|
backgroundColor | Wert:
UIColor Standardmäßig ist UIColor.lightGray festgelegt.
|
Kartenoptionen konfigurieren
Sie können entweder Ihre eigenen Optionseigenschaften festlegen oder eine instanziierte
GMSMapViewOptions
mit Standardwerten direkt auf 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];
Hier ein Beispiel für die direkte Weitergabe eines GMSMapViewOptions
-Objekts mit Standardwerten an 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
Hintergrundfarbe konfigurieren
Wenn Sie im Dunkelmodus arbeiten oder zwischen Kartenansichten wechseln, kann es hilfreich sein, die Standardfarbe des Kartenhintergrunds zu überschreiben. Dies kann erreicht werden, indem der Parameter
backgroundColor
der Kartenoptionen.
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];
Kartentypen
Sie können die Karten mit einem von verschiedenen Kartentypen benutzerdefiniert gestalten. Der Kartentyp bestimmt die Gesamtdarstellung der Karte. Ein Atlas enthält normalerweise politische Karten mit Schwerpunkt auf der Darstellung von Grenzen, Straßenkarten alle Straßen einer Stadt oder Region. Das Maps SDK for iOS bietet Folgendes: folgenden Kartentypen:
Kartentyp | |
---|---|
Normal | Wert:
kGMSTypeNormal Typische Straßenkarte. Straßen, einige von Menschen geschaffene Merkmale und wichtige Landschaftsmerkmale wie Flüsse werden angezeigt. Die dazugehörigen Labels sind auch sichtbar. Unterstützt die Einstellung des Farbschemas der Karte auf dunkel, hell,
oder die Systemeinstellungen zu befolgen.
|
Hybrid | Wert:
kGMSTypeHybrid Enthält Satellitenfotodaten mit zusätzlichen Straßenkarten. Straße und Element
sind ebenfalls sichtbar. |
Satellit | Wert:
kGMSTypeSatellite Enthält Satellitenfotodaten. Beschriftungen von Straßen und Elementen sind nicht
sichtbar sind.
|
Gelände | Wert:
kGMSTypeTerrain Enthält topografische Daten. Die Karte enthält Farben, Höhenlinien und Beschriftungen,
und perspektivische Schattierungen. Außerdem werden einige Straßen und Labels dargestellt. Wird unterstützt
das Farbschema der Karte auf dunkel, hell oder gemäß den Systemeinstellungen einstellen.
|
Keine | Wert:
kGMSTypeNone Enthält keine Kartenkacheln. Die Kacheln mit Grundkarten werden nicht wiedergegeben. Dieser Modus ist
nützlich in Verbindung mit tile
Ebenen Die Anzeige von Verkehrsdaten ist beim folgenden Kartentyp deaktiviert:
auf „Keine“ gesetzt. |
Kartentyp ändern
Weisen Sie GMSMapView.mapType
einen neuen Wert zu, um den Typ einer Karte festzulegen
Property. Beispiel: Anzeigen des Kartentyps „Satellit“:
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;
Die folgende Auswahl zeigt einen Vergleich der Gelände-, normalen und hybriden Karten für die Am selben Standort:
Indoor-Karten
Bei einem hohen Zoomfaktor sind im Maps SDK for iOS Gebäudepläne für Innenbereiche wie z. B. Flughäfen, Einkaufszentren, große Geschäfte und Bahnhöfe zu sehen. Gebäudepläne sind in die Standard-Kartenkacheln für die
'normal' [normal] (kGMSTypeNormal
) und werden automatisch aktiviert, wenn die
zoomt der Nutzer heran und wird beim Herauszoomen aus der Karte ausgeblendet.
Sie können Indoor-Karten deaktivieren, indem Sie das Attribut indoorEnabled
der
GMSMapView
bis NO
.
Swift
mapView.isIndoorEnabled = false
Objective-C
mapView.indoorEnabled = NO;
Alternativ können Sie nur das Steuerelement Etagenauswahl deaktivieren.
Gebäudepläne hinzufügen
Gebäudepläne sind in ausgewählten Standorte Wenn für ein Gebäude, das Sie optimieren möchten, keine Gebäudeplandaten verfügbar sind: in Ihrer Bewerbung hervorheben, haben Sie folgende Möglichkeiten:
- Etage hinzufügen Abos direkt in Google Maps. Dadurch sind Ihre Pläne für alle Nutzer von Google Maps
- Sie können einen Gebäudeplan als Boden-Overlay anzeigen lassen. Dann können nur Nutzer deiner App deine Gebäudepläne sehen.
Verkehrsebene
Du kannst den Nutzern die Möglichkeit geben, eine Karte mit darüber gelagerten Informationen zur Verkehrsdichte zu sehen. Das ist eine visuelle Zusammenfassung der lokalen Verkehrssituation. Sie können die Verkehrsebene aktivieren und deaktivieren, indem Sie folgenden Befehl aufrufen:
die
trafficEnabled
. Das folgende Beispiel zeigt, wie die Verkehrsebene auf einer Karte aussehen könnte.
Bedienungshilfen
Standardmäßig sind die Elemente zur erleichteren Bedienung der Karte verborgen. Sie können
indem du das Attribut accessibilityElementsHidden
der
GMSMapView
bis NO
. Dadurch werden Elemente für Barrierefreiheit für Overlay-Objekte generiert, z. B. GMSMarker
und Infofenster GMSPolyline
.
Swift
mapView.accessibilityElementsHidden = false
Objective-C
mapView.accessibilityElementsHidden = NO;
Diese Eigenschaft entspricht dem informellen UIAccessibility
-Protokoll, mit der Ausnahme, dass der Standardwert im Maps SDK for iOS YES
ist.
Mein Standort
Standardmäßig werden auf der Karte keine Standortdaten angezeigt. Sie können die blaue Schaltfläche "Meine
Standort“ Punkt- und Kompassrichtung anzeigen, indem Sie myLocationEnabled
aktivieren
GMSMapView
.
Swift
mapView.isMyLocationEnabled = true
Objective-C
mapView.myLocationEnabled = YES;
Bei Aktivierung dieser Funktion wird der aktuelle Standort des Nutzers über das
myLocation
-Property. Diese Property ist möglicherweise nicht sofort verfügbar – für
Das ist beispielsweise der Fall, wenn der Nutzer von iOS aufgefordert wird, den Zugriff auf diese Daten zu erlauben. Es ist
In diesem Fall nil
.
Swift
print("User's location: \(String(describing: mapView.myLocation))")
Objective-C
NSLog(@"User's location: %@", mapView.myLocation);
3D-Gebäude
In vielen Städten werden in der Nahansicht 3D-Gebäude angezeigt. unten in der Abbildung von Seattle, Washington.
Sie können 3D-Gebäude deaktivieren, indem Sie die entsprechenden
GMSMapView
in Swift oder Objective-C festlegen, wie unten dargestellt:
Swift
mapView.isBuildingsEnabled = false
Objective-C
[mapView setBuildingsEnabled:NO];
Karte mit Innenrand versehen
Eine Google-Karte füllt standardmäßig den gesamten Bereich aus, der von der GMSMapView
definiert wird.
Verschiedene Aspekte der Darstellung und des Verhaltens der Karte werden durch die Dimensionen definiert.
der Ansicht:
- Das Kameraziel spiegelt die Mitte des abgesetzten Bereichs wider.
- Kartensteuerelemente werden relativ zu den Rändern der Karte positioniert.
- Rechtliche Informationen wie Urheberrechtsangaben oder das Google-Logo werden am unteren Rand der Karte angezeigt.
Mithilfe von GMSMapView
können Sie an der Kartenaußenseite einen Innenrand hinzufügen.padding
-Property. Die Karte füllt sich weiterhin
den gesamten Container, aber die Positionierung von Text und Steuerelementen, Touch-Gesten zur Karte und Kamera
verhalten sich so, als wäre es in einem kleineren Raum platziert worden. Das führt zu folgenden Änderungen:
- Kamerabewegungen mithilfe von API-Aufrufen oder dem Drücken von Schaltflächen (z.B. Kompass, mein Standort) relativ zum abgesetzten Bereich sind.
GMSMapView
.projection
gibt eine Projektion zurück, die nur den abgesetzten Wert enthält. Region- UI-Steuerelemente sind vom Rand des Containers um den angegebenen Wert Punkte.
Padding kann beim Entwerfen von Benutzeroberflächen hilfreich sein, die sich mit einem Teil der Karte überschneiden. Im Bild hat die Karte beispielsweise am oberen und rechten Rand einen Innenrand. Sichtbare Kartensteuerelemente und rechtliche Hinweise werden am Rand des abgesetzten während die Karte weiterhin den gesamten Container ausfüllt. in Blau dargestellt. In diesem Beispiel könnten Sie ein Menü über der rechten Seite ohne die Steuerelemente zu verdecken.
Um Ihrer Karte einen Innenrand hinzuzufügen, erstellen Sie ein UIEdgeInsets
-Objekt und übergeben Sie es an die
GMSMapView
.padding
-Property.
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;
Farbschema der Karte
Für Karten vom Typ „Normal“ und „Gelände“ können Sie das Farbschema auf „Dunkel“, oder die aktuellen Systemeinstellungen verwenden. Sie können zum Beispiel das Farbschema der Karte je nach Tageszeit oder Verwendung im Innen- oder Außenbereich aufhellen des Geräts.
Verwenden Sie GMSMapView
overrideUserInterfaceStyle:
, um das Kartenfarbschema festzulegen und zu aktualisieren.
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;