Karte konfigurieren

Plattform auswählen: Android iOS

In dieser Übersicht wird beschrieben, wie Sie mit dem Maps SDK for iOS eine Karte konfigurieren, die einer iOS-App hinzugefügt wurde.

Übersicht

Nachdem Sie der App eine Karte hinzugefügt haben, können Sie die Anfangs- und die Laufzeiteinstellungen konfigurieren. Weitere Informationen finden Sie unter Karte hinzufügen.

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.
  • Hintergrundfarbe der Karte .
  • Der Kartentyp.
  • Die UI-Elemente zum Anzeigen, wie die Zoomschaltflächen und der Kompass
  • Die zu aktivierenden Touch-Gesten

Diese und weitere Einstellungen können Sie während der Laufzeit konfigurieren. Hierzu muss das Objekt GMSMapView aktualisiert werden.

Kartenoptionen

Beim Initialisieren der Kartenansicht werden Konfigurationsoptionen mit GMSMapViewOptions festgelegt. Zu den Optionen gehören frame, camera, mapID oder backgroundColor.

Kartenoptionen
Bettgestell
Wert:CGRect
Der Kartenrahmen. Standardwert: CGRectZero.
Kamera
Wert:GMSCameraPosition
Die Standardposition der Kartenkamera.
mapID
Wert:GMSMapID
Google-Karten-ID. Optionaler Parameter.
backgroundColor
Wert:UIColor
Standardwert: UIColor.lightGray

Kartenoptionen konfigurieren

Sie können entweder eigene Optionen festlegen oder ein instanziiertes GMSMapViewOptions mit Standardwerten direkt an GMSMapView übergeben.

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 ist ein Beispiel für die Übergabe eines GMSMapViewOptions-Objekts mit Standardwerten direkt 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 dunklen Modus arbeiten oder zwischen Kartenansichten wechseln, kann es sinnvoll sein, die Standardhintergrundfarbe der Karte zu überschreiben. Dazu legen Sie die Eigenschaft backgroundColor der Kartenoptionen fest.

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 allgemeine Darstellung der Karte. Ein Atlas enthält beispielsweise in der Regel politische Karten , auf denen Grenzen zu sehen sind, und Straßenkarten , auf denen alle Straßen einer Stadt oder Region dargestellt sind. Das Maps SDK for iOS bietet die folgenden Kartentypen:

Kartentyp
Normal
Wert:kGMSTypeNormal
Typische Straßenkarte. Zeigt Straßen, einige von Menschen geschaffene Elemente und wichtige natürliche Elemente wie Flüsse. Die dazugehörigen Labels sind auch sichtbar. Unterstützt die Festlegung des Farbschemas der Karte auf „Dunkel“, „Hell“, oder „Systemeinstellungen folgen“.
Hybrid
Wert:kGMSTypeHybrid
Enthält Satellitenfotodaten mit zusätzlichen Straßenkarten. Die dazugehörigen Labels sind auch sichtbar.
Satellit
Wert:kGMSTypeSatellite
Enthält Satellitenfotodaten. Die dazugehörigen Labels sind nicht sichtbar.
Gelände
Wert:kGMSTypeTerrain
Enthält topografische Daten. Die Karte enthält Farben, Höhenlinien und Labels, und eine perspektivische Schattierung. Außerdem werden einige Straßen und Labels dargestellt. Unterstützt die Festlegung des Farbschemas der Karte auf „Dunkel“, „Hell“ oder „Systemeinstellungen folgen“.
–
Wert:kGMSTypeNone
Enthält keine Kartenkacheln. Die Basiskartenkacheln werden nicht gerendert. Dieser Modus ist in Verbindung mit Kachelebenen nützlich. Die Anzeige von Verkehrsdaten ist deaktiviert, wenn der Kartentyp auf gesetzt ist.

Kartentyp ändern

Um den Typ einer Karte festzulegen, weisen Sie der Eigenschaft GMSMapView.mapType einen neuen Wert zu. So wird z. B. eine Satellitenkarte angezeigt:

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;

In der folgenden Auswahl sehen Sie einen Vergleich von Gelände-, Normal- und Hybridkarten für denselben Standort:

Indoor-Karten

Bei hohen Zoomstufen zeigt das Maps SDK for iOS Gebäudepläne für Innenbereiche wie z. B. Flughäfen, Einkaufszentren, große Einzelhandelsgeschäfte und Bahnhöfe an. Gebäudepläne für Innenbereiche sind in die Standardkartenkacheln für den Kartentyp „Normal“ (kGMSTypeNormal) integriert. Sie werden automatisch aktiviert, wenn Nutzer heranzoomen, und ausgeblendet, wenn sie wieder herauszoomen.

Indoor-Karten können deaktiviert werden, indem Sie die Eigenschaft indoorEnabled von GMSMapView auf NO setzen.

Swift

mapView.isIndoorEnabled = false
      

Objective-C

mapView.indoorEnabled = NO;
      

Alternativ können Sie nur das Steuerelement zur Ebenenauswahl deaktivieren.

Gebäudepläne hinzufügen

Gebäudepläne sind an ausgewählten Standorten verfügbar. Wenn für ein Gebäude, das Sie in Ihrer Anwendung hervorheben möchten, keine Gebäudeplandaten verfügbar sind, haben Sie folgende Möglichkeiten:

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 mit der Methode aktivieren trafficEnabled und deaktivieren. Das folgende Beispiel zeigt, wie die Verkehrsebene auf einer Karte aussehen könnte.

Eine Google-Karte mit der Verkehrsebene

Ebene für öffentliche Verkehrsmittel

Mit dem Maps SDK for iOS können Sie mithilfe der transitEnabled Methode das öffentliche Nahverkehrsnetz einer Stadt auf Ihrer Karte anzeigen lassen. Wenn die Verkehrsebene aktiviert ist und die Karte auf eine Stadt zentriert ist, für die Informationen zu öffentlichen Verkehrsmitteln verfügbar sind, werden auf der Karte wichtige ÖPNV-Linien als breite, farbige Linien angezeigt. Die Farben der Linien richten sich nach den Informationen des jeweiligen Betreibers. Wenn Sie die Ebene für öffentliche Verkehrsmittel aktivieren, wird der Stil der Basiskarte so angepasst, dass Routen mit öffentlichen Verkehrsmitteln besser hervorgehoben werden.

Sie arbeiten für eine Behörde, die sich um die öffentlichen Verkehrsmittel Ihrer Stadt kümmert, und möchten, dass Ihre Daten einbezogen werden? Dann sehen Sie sich bitte die Informationen auf der Website des Google Transit-Partner programms an.

Das folgende Beispiel zeigt, wie die Ebene für öffentliche Verkehrsmittel auf einer Karte aussehen könnte.

Eine Google-Karte mit der Ebene „Öffentliche Verkehrsmittel“

Bedienungshilfen

Standardmäßig werden Bedienungshilfen nicht auf der Karte angezeigt. Sie können Bedienungshilfen aktivieren, indem Sie die Eigenschaft accessibilityElementsHidden von GMSMapView auf NO setzen. Dadurch werden Bedienungshilfen für Overlay-Objekte wie GMSMarker und Infofenster, GMSPolyline usw. generiert.

Swift

mapView.accessibilityElementsHidden = false
      

Objective-C

mapView.accessibilityElementsHidden = NO;
      

Diese Eigenschaft entspricht dem informellen Protokoll UIAccessibility, 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 den blauen Punkt „Mein Standort“ und die Kompassrichtung aktivieren, indem Sie myLocationEnabled für GMSMapView festlegen.

Swift

mapView.isMyLocationEnabled = true
      

Objective-C

mapView.myLocationEnabled = YES;
      

Wenn Sie diese Funktion aktivieren, wird der aktuelle Standort des Nutzers über die Eigenschaft myLocation bereitgestellt. Diese Eigenschaft ist möglicherweise nicht sofort verfügbar, z. B. wenn der Nutzer von iOS aufgefordert wird, den Zugriff auf diese Daten zu erlauben. In diesem Fall ist sie 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 sind in der Nahansicht 3D-Gebäude zu sehen, wie zum Beispiel unten im Bild von Seattle, Washington.

Eine 3D-Karte von Gebäuden in Seattle, Washington.

Sie können die 3D-Gebäude deaktivieren, indem Sie die entsprechende GMSMapView Eigenschaft in Swift oder Objective-C festlegen, wie unten gezeigt:

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 GMSMapView definiert wird. Verschiedene Aspekte der Darstellung und des Verhaltens der Karte werden durch die Abmessungen der Ansicht definiert:

  • Das Ziel der Kamera entspricht der Mitte des abgesetzten Bereichs.
  • 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 Eigenschaft. Die Karte füllt weiterhin den gesamten Container aus, aber Touch-Gesten zur Kartensteuerung, Kamerabewegungen und die Positionierung von Text und Steuerelementen verhalten sich so, als wäre die Karte in einem kleineren Bereich platziert worden. Das führt zu folgenden Änderungen:

  • Kamerabewegungen über API-Aufrufe oder die Betätigung von Buttons (z.B. dem Kompass-Button oder dem Button „Mein Standort“) erfolgen relativ zum abgesetzten Bereich.
  • GMSMapView.projection gibt eine Projektion zurück, die nur den abgesetzten Bereich enthält.
  • UI-Steuerelemente werden um die angegebene Anzahl von Punkten vom Rand des Containers verschoben.

Padding kann beim Entwerfen von Benutzeroberflächen hilfreich sein, die sich mit einem Teil der Karte überschneiden. In der Abbildung hat die Karte entlang des oberen und rechten Rands einen Innenrand. Sichtbare Kartensteuerelemente und rechtliche Informationen werden entlang der Ränder des abgesetzten Bereichs (grün) angezeigt. Die Karte füllt aber weiterhin den gesamten Container (blau) aus. In diesem Beispiel kann rechts auf der Karte ein Menü eingeblendet werden, ohne die Kartensteuerelemente zu verdecken.

Mit Innenrand versehene Karte

Wenn Sie Ihrer Karte einen Innenrand hinzufügen möchten, erstellen Sie ein UIEdgeInsets-Objekt und übergeben Sie es an GMSMapView.Eigenschaft 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;
      

Farbschema der Karte

Für Karten vom Typ „Normal“ und „Gelände“ können Sie das Farbschema der Karte auf „Dunkel“, „Hell“ oder „Aktuelle Systemeinstellungen verwenden“ setzen. Sie können das Farbschema der Karte beispielsweise je nach Tageszeit oder je nachdem, ob das Gerät im Innen- oder Außenbereich verwendet wird, dunkler oder heller gestalten.

Verwenden Sie GMSMapView overrideUserInterfaceStyle: , 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;

Wenn Sie benutzerdefinierte helle und dunkle Stile für Ihre Karten erstellen möchten, verwenden Sie das cloudbasierte Gestalten von Karteninhalten.