Karte konfigurieren

Plattform auswählen: Android iOS

In dieser Übersicht wird beschrieben, wie Sie eine Karte konfigurieren, die einer iOS-App hinzugefügt wurde. mit dem 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:

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 Standardposition der Kartenkamera.
mapID
Wert: GMSMapID
Google mapID. Optionaler Parameter.
backgroundColor
Wert: UIColor
Standardeinstellung: UIColor.lightGray

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 Übergabe eines GMSMapViewOptions-Objekts mit Standardwerten direkt an GMSMapView senden.

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

Beim Arbeiten im dunklen Modus oder beim Wechseln zwischen Kartenansichten kann es hilfreich sein, Standard-Kartenhintergrundfarbe ü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. Zeigt Straßen, einige Funktionen von Menschen und wichtigen natürlichen Gegebenheiten wie Flüssen. 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 oder hell einstellen oder entsprechend den Systemeinstellungen festlegen.
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 deaktiviert, wenn der Kartentyp 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 hohen Zoomstufen zeigt das Maps SDK for iOS Gebäudepläne für wie z. B. in Flughäfen, Einkaufszentren, großen Geschäften und öffentlichen Verkehrsmitteln. Sender. 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 auf NO.

Swift

mapView.isIndoorEnabled = false
      

Objective-C

mapView.indoorEnabled = NO;
      

Alternativ können Sie nur die Steuerung für die Etagenauswahl.

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. Dadurch werden nur Nutzer Ihrer App Ihre Gebäudepläne ansehen können.

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.

Eine Google-Karte mit Verkehrsinformationen
Ebene

Bedienungshilfen

Standardmäßig sind die Elemente zur erleichteren Bedienung der Karte verborgen. Sie können indem du das Attribut accessibilityElementsHidden der GMSMapView auf NO. Dadurch werden Bedienungshilfen-Elemente für Overlay-Objekte (wie GMSMarker und Infofenster, GMSPolyline usw.).

Swift

mapView.accessibilityElementsHidden = false
      

Objective-C

mapView.accessibilityElementsHidden = NO;
      

Diese Eigenschaft entspricht dem informellen UIAccessibility-Protokoll, mit dem Unterschied, dass das Attribut Der Standardwert im Maps SDK for iOS ist YES.

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.

Eine 3D-Karte von Gebäuden in 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 Maps-Karte füllt standardmäßig den gesamten durch GMSMapView definierten Bereich aus. 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. Daraus ergeben sich die 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 grün dargestellt, 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.

Mit Innenrand versehene Karte

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 die 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.

GMSMapView overrideUserInterfaceStyle: verwenden um das Farbschema der Karte 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;