Kamera und Ansicht

Plattform auswählen: Android iOS JavaScript

Mit dem Maps SDK for iOS können Sie die Nutzeransicht der Karte ändern indem Sie die Kamera der Karte ändern.

Mit dem Maps SDK for iOS können Nutzer Ihre um sie an eine für ihren Kontext nützliche Ausrichtung anzupassen. Bei jedem Zoom können Nutzer die Karte mit sehr geringer Latenz schwenken oder die Perspektive ändern.

Änderungen an der Kamera wirken sich nicht auf Markierungen, Polylinien oder andere Grafiken aus, hinzugefügt. Sie können diese Ergänzungen jedoch ändern, damit sie besser zu den neuen Ansicht.

Kartenansicht

Das Maps SDK for iOS nutzt Mercator Projektion zur Darstellung der Erdoberfläche (einer Kugel) auf dem Bildschirm Ihres Geräts (eine ebene Flugzeug.

Kameraposition

Die Kartenansicht ist so modelliert, als sei eine Kamera auf eine ebene Fläche ausgerichtet. Die Position der Kamera (und damit das Rendern der Karte) wird durch folgende Eigenschaften festgelegt: Ziel (Breiten- und Längengrad), Lage (Ausrichtung), Neigung (Blickwinkel) und Zoom.

Diagramm der Kameraeigenschaften

Ziel (Standort)

Das Kameraziel ist der Standort in der Kartenmitte, angegeben in Breiten- und Längengradkoordinaten.

Der Breitengrad kann zwischen -85 und 85 Grad liegen. Werte ober- oder unterhalb dieses Bereichs werden auf den nächstgelegenen Wert innerhalb des Bereichs gesetzt. Wird z. B. 100 als Breitengrad angeben, wird der Wert auf 85 gesetzt. Der Längengrad kann zwischen -180 bis 180 Grad liegen. Werte ober- oder unterhalb dieses Bereichs werden so umgerechnet, dass sie in diesen Längengrad-Bereich fallen. Beispielsweise wird bei 480, bei 840 und bei 1.200 Grad der Wert auf 120 Grad gesetzt.

Lage (Ausrichtung)

Die Lage der Kamera gibt die Kompassrichtung an. Sie wird in Grad vom geografischen Norden gemessen, der dem oberen Rand der Karte entspricht. Wenn Sie eine vertikale Linie von der Kartenmitte zum oberen Rand der Karte ziehen, entspricht die Lage der Ausrichtung der Kamera (gemessen in Grad) relativ zum geografischen Norden.

Eine Lage von 0 bedeutet, dass der obere Rand der Karte dem geografischen Norden entspricht. Bei 90 zeigt er nach Osten (90 Grad auf einem Kompass). Ein Wert von 180 bedeutet, dass der obere Rand der Karte nach Süden zeigt.

Mit der Google Maps API lässt sich die Lage einer Karte ändern. Beispielsweise drehen Autofahrer eine Straßenkarte häufig so, dass sie ihrer Fahrtrichtung entspricht, während Wanderer Karte und Kompass zumeist so halten, dass die vertikale Linie nach Norden zeigt.

Neigung (Blickwinkel)

Die Neigung definiert die Kameraposition auf einem Bogen, der direkt über dem Kartenmittelpunkt verläuft. Sie wird in Grad Abstand vom Nadir (Richtung von der Kamera direkt nach unten) gemessen. Ein Wert von 0 entspricht einer Kamera, die gerade nach unten gerichtet ist. Bei Werten über 0 ist die Kamera um die angegebene Gradzahl auf den Horizont ausgerichtet. Wenn Sie den Blickwinkel ändern, wird die Karte perspektivisch dargestellt. Weit entfernte Objekte erscheinen dann kleiner und nahe Objekte größer. Das wird in den folgenden Abbildungen verdeutlicht.

In den unten stehenden Bildern beträgt der Blickwinkel 0 Grad. Das ist im ersten Bild schematisch dargestellt: Position 1 ist die Kameraposition und Position 2 die aktuelle Kartenposition. Die daraus resultierende Karte ist nachfolgend dargestellt.

Screenshot einer Karte, bei der die Kamera in einem Blickwinkel von 45 Grad mit Zoomstufe 18 positioniert ist
Karte aus dem Standardblickwinkel der Kamera
Diagramm zur Darstellung der Standardposition der Kamera: direkt über der Kartenposition, in einem Winkel von 0 Grad
Standardblickwinkel der Kamera

In den Bildern unten beträgt der Blickwinkel 45 Grad. Die Kamera bewegt sich auf halber Strecke entlang eines Bogens zwischen Zenit (0 Grad) und Boden (90 Grad) auf Position 3. Sie zeigt immer noch auf den Kartenmittelpunkt, allerdings ist jetzt der Bereich sichtbar, der von der Linie an Position 4 dargestellt wird.

Screenshot einer Karte, bei der die Kamera in einem Blickwinkel von 45 Grad mit Zoomstufe 18 positioniert ist
Karte unter einem Blickwinkel von 45 Grad
Diagramm zur Darstellung eines Kamerablickwinkels von 45 Grad, weiterhin mit Zoomstufe 18
Kamerablickwinkel von 45 Grad

Die Karte im Screenshot ist zwar weiterhin auf den gleichen Punkt zentriert wie die ursprüngliche Karte, allerdings sind jetzt oben auf der Karte mehr Objekte zu sehen. Wenn Sie den Winkel auf über 45 Grad vergrößern, erscheinen Objekte zwischen Kamera und Kartenposition proportional größer, während Objekte jenseits der Kartenposition kleiner dargestellt werden. Hierdurch entsteht ein dreidimensionaler Effekt.

Zoom

Von der Zoomstufe der Kamera hängt in Maps der Maßstab der Karte ab. Bei größeren Zoomstufen sind auf dem Bildschirm mehr Details zu sehen, bei kleineren Zoomstufen erhalten Sie einen größeren Überblick. Bei Zoomstufe 0 ist die Karte so maßstabsgetreu, dass die ganze Welt eine Breite von etwa 256 Punkten.

Wenn man die Zoomstufe um 1 erhöht, verdoppelt sich die Breite der Erde auf dem Bildschirm. Bei Zoomstufe N beträgt die Breite der Erde demnach etwa 256 × 2N Punkte. Bei Zoomstufe 2 beträgt die Erde etwa Breite: 1.024 Punkte.

Die Zoomstufe muss nicht als ganze Zahl angegeben werden. Der für eine Karte zulässige Zoomstufenbereich hängt von einer Reihe von Faktoren ab, z. B. dem Ziel, dem Kartentyp und der Bildschirmgröße. Jede Zahl außerhalb des Bereichs wird in den nächsten gültigen Wert konvertiert. Das kann entweder die minimale oder die maximale Zoomstufe sein. Die folgende Liste enthält die ungefähre Detailebene, die Sie bei der jeweiligen Zoomstufe wahrscheinlich sehen können:

  • 1: Welt
  • 5: Landmasse/Kontinent
  • 10: Stadt
  • 15: Straßen
  • 20: Gebäude
Die folgenden Bilder zeigen die visuelle Darstellung bei unterschiedlichen Zoomstufen.
Screenshot einer Karte mit Zoomstufe 5
Karte mit Zoomstufe 5
Screenshot einer Karte mit Zoomstufe 15
Karte mit Zoomstufe 15
Screenshot einer Karte mit Zoomstufe 20
Karte mit Zoomstufe 20

Anfangsposition der Kamera festlegen

Legen Sie die Anfangsposition der Kamera mithilfe der GMSCameraPosition -Objekt, mit dem Sie Breiten- und Längengrad des Ziels zusammen mit Peilung, Neigung und Zoom.

Erstellen Sie zum Festlegen der Anfangsposition der Kamera ein GMSMapViewOptions-Objekt und legen Sie die Eigenschaft camera in GMSCameraPosition. Übergeben Sie dann Ihre Optionen an die GMSMapView Convenience-Konstruktor.

Swift

let options = GMSMapViewOptions()
options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 16)
let mapView = GMSMapView(options:options)

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:16];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

Sie können das GMSMapView-Objekt auch mit der standardmäßigen UIView-Initialisierung erstellen. . In diesem Fall beginnt die Kameraposition am Standardstandort und Sie nach der Erstellung ändern.

Swift

let options = GMSMapViewOptions()
options.frame = self.view.bounds
let mapView = GMSMapView(options:options)

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.frame = self.view.bounds;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

Kameraposition ändern

Sie können die Kameraposition programmatisch ändern, um den Standort, Peilung, Neigung und Zoom. GMSMapView bietet zwar mehrere Methoden, zum Ändern der Kameraposition verwenden können, verwenden Sie normalerweise GMSCameraPosition oder GMSCameraUpdate:

  • GMSCameraPosition enthält Eigenschaften und Methoden, mit denen Sie jede Kameraposition ändern können Parameter: target, Peilung, Neigung und Zoom.

  • GMSCameraUpdate können Sie Ziel, Peilung, Neigung und Zoom ändern. Darüber hinaus sind weitere die das Scrollen, erweiterte Zoomen und das Zentrieren des Kamera innerhalb vordefinierter Grenzen usw.

Wenn du die Kamera bewegst, kannst du die Kamera zum neuen d. h. es findet keine Animation statt, oder Sie animieren den Zug. Wenn beispielsweise Sie eine Änderung der Zielposition der Kamera animieren, schwenkt die Animation von vom vorherigen Speicherort zum neuen.

Die Animation wird zwischen den aktuellen und den neuen Kameraattributen interpoliert. Sie können die Dauer der Animation mit Core Core Animation:

GMSCameraPosition“ verwenden

Um die Kamera mit GMSCameraPosition, erstellen Sie ein neues Objekt oder kopieren ein vorhandenes Objekt und legen es auf dem GMSMapView-Objekt. Verwende das GMSCameraPosition-Objekt, um die Kamera anzurichten mit oder ohne Animation ändern.

Verwende ein GMSCameraPosition-Objekt, um Kameraeigenschaften wie Breitengrad, Längengrad, Zoom, Peilung und Blickwinkel. Dann verwenden Sie dieses Objekt, um das Attribut camera von GMSMapView festzulegen.

Swift

let fancy = GMSCameraPosition(
  latitude: -33,
  longitude: 151,
  zoom: 6,
  bearing: 270,
  viewingAngle: 45
)
mapView.camera = fancy
      

Objective-C

GMSCameraPosition *fancy = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                       longitude:151.2086
                                                            zoom:6
                                                         bearing:30
                                                    viewingAngle:45];
[mapView setCamera:fancy];
      

Lassen Sie alle GMSCameraPosition-Attribute weg, die Sie auf den Standardwert setzen möchten.

Um den Verschiebevorgang zu animieren, verwenden Sie die Methode animateToCameraPosition: statt und legen die Eigenschaft camera fest.

GMSCameraUpdate“ verwenden

GMSCameraUpdate können Sie die Kameraposition aktualisieren und festlegen, ob die Kamera für diese neue Position. Der Vorteil von GMSCameraUpdate ist die Benutzerfreundlichkeit. Sie können Verwenden Sie GMSCameraPosition, um dieselben Aufgaben wie GMSCameraUpdate auszuführen, aber GMSCameraUpdate bietet zusätzliche Hilfsmethoden, die das Ausführen die Kamera zu bedienen.

Um beispielsweise mit GMSCameraPosition die aktuelle Zoomstufe zu erhöhen, müssen Sie zuerst die aktuelle Zoomstufe ermitteln und dann eine GMSCameraPosition-Objekt, bei dem Sie den Zoom auf einen Wert festgelegt haben, der größer als den aktuellen Zoomfaktor.

Alternativ können Sie ein GMSCameraUpdate-Objekt mit der Methode zoomIn: erstellen. Aktualisieren Sie dann die Kamera, indem Sie das GMSCameraUpdate-Objekt an die GMSMapView animateWithCameraUpdate:-Methode.

Swift

// Zoom in one zoom level
let zoomCamera = GMSCameraUpdate.zoomIn()
mapView.animate(with: zoomCamera)
      

Objective-C

// Zoom in one zoom level
GMSCameraUpdate *zoomCamera = [GMSCameraUpdate zoomIn];
[mapView animateWithCameraUpdate:zoomCamera];
      

Verwenden Sie die Methode GMSMapView moveCamera:, um die Kamera an der neuen Position auszurichten .

Im nächsten Beispiel animieren Sie mit GMSCameraUpdate eine Kamerabewegung. um Vancouver zu zentrieren.

Swift

// Center the camera on Vancouver, Canada
let vancouver = CLLocationCoordinate2D(latitude: 49.26, longitude: -123.11)
let vancouverCam = GMSCameraUpdate.setTarget(vancouver)
mapView.animate(with: vancouverCam)
      

Objective-C

// Center the camera on Vancouver, Canada
CLLocationCoordinate2D vancouver = CLLocationCoordinate2DMake(49.26, -123.11);
GMSCameraUpdate *vancouverCam = [GMSCameraUpdate setTarget:vancouver];
[mapView animateWithCameraUpdate:vancouverCam];
      

GMSCameraUpdate-Objekt erstellen

Konstruieren Sie ein GMSCameraUpdate-Objekt mithilfe einer seiner Methoden.

zoomIn: und zoomOut:
Die aktuelle Zoomstufe wird um 1,0 geändert, während und alle anderen Eigenschaften gleich.
zoomTo:
Ändert die Zoomstufe in den angegebenen Wert und behält alle anderen Werte bei und Eigenschaften gleich bleiben.
zoomBy:
Erhöht bzw. verringert (bei einem negativen Wert) die Zoomstufe durch den gegebenen Wert.
zoomBy:atPoint:
Erhöht (oder verringert, wenn der Wert negativ ist) das Zoomstufe um den angegebenen Wert unter Beibehaltung des Position auf dem Bildschirm.
setTarget:
Ändert den Breiten- und Längengrad der Kamera unter Beibehaltung allen anderen Properties.
setTarget:zoom:
Ändert Breiten- und Längengrad sowie Zoom der Kamera, während Beibehaltung aller anderen Eigenschaften.
setCamera:
Legt eine neue GMSCameraPosition fest.
scrollByX:Y:
Ändert den Breiten- und Längengrad der Kamera, um die Karte zu verschieben um die angegebene Anzahl von Punkten. Ein positiver X-Wert führt dazu, dass die Kamera nach rechts bewegt, sodass die Karte so aussieht, als wäre die Karte hat den Chat verlassen. Ein positiver Y-Wert führt dazu, dass die Kamera nach unten bewegt wird, sodass die Karte nach oben verschoben wurden. Das Scrollen richtet sich nach der aktuellen die Lagerung. Bei einer Kameraposition von 90 Grad Osten ist "oben".
fitBounds:
Wandelt die Kamera so um, dass die angegebenen Grenzen auf dem Bildschirm an folgender Position zentriert werden: Zoomfaktor verwenden. Wendet eine Standardeinstellung an Padding bis zum Rand von 64 Punkten.
fitBounds:withPadding:
Wandelt die Kamera so um, dass die angegebenen Grenzen auf dem mit der größtmöglichen Zoomstufe dargestellt. Mit dieser Methode geben Sie den das Padding für alle Seiten des Markierungsrahmens in Punkten.
fitBounds:withEdgeInsets:
Wandelt die Kamera so um, dass die angegebenen Grenzen auf dem mit der größtmöglichen Zoomstufe dargestellt. Mit UIEdgeInsets, geben Sie unabhängig voneinander das Padding für jede Seite des Markierungsrahmens an.

Mit GMSMapView eine einzelne Property ändern

GMSMapView bietet mehrere Methoden, mit denen Sie die Kamera ohne Verwendung eines GMSCameraPosition- oder GMSCameraUpdate-Objekt. Bei diesen Methoden als animateToLocation: oder animateToZoom: verwenden, können Sie eine Änderung Kameraeigenschaft fest.

Sie können beispielsweise die Methode toViewingAngle: verwenden, um eine Änderung an der Kamera zu animieren. Neigung.

Swift

mapView.animate(toViewingAngle: 45)
      

Objective-C

[mapView animateToViewingAngle:45];
      

Ziel festlegen (Standort)

Der Standort bestimmt die Kartenmitte. Standorte werden angegeben durch Längen- und Breitengrade angegeben und programmatisch durch ein CLLocationCoordinate2D, erstellt mit CLLocationCoordinate2DMake.

Verwende GMSCameraPosition, um den Standort zu ändern. In diesem Beispiel wird die Karte in den neuen Speicherort verschieben.

Swift

let target = CLLocationCoordinate2D(latitude: -33.868, longitude: 151.208)
mapView.camera = GMSCameraPosition(target: target, zoom: 6)
      

Objective-C

CLLocationCoordinate2D target =
    CLLocationCoordinate2DMake(-33.868, 151.208);
mapView.camera = [GMSCameraPosition cameraWithTarget:target zoom:6];
      

Um die Änderung zu animieren und die Karte zum neuen Standort zu schwenken, können Sie die animateToCameraPosition:-Methode, anstatt das Attribut camera festzulegen. Oder Verwenden Sie die Methode animateToLocation: für GMSMapView.

Swift

mapView.animate(toLocation: CLLocationCoordinate2D(latitude: -33.868, longitude: 151.208))
      

Objective-C

[mapView animateToLocation:CLLocationCoordinate2DMake(-33.868, 151.208)];
      

Sie können auch ein GMSCameraUpdate-Objekt erstellen, um die Kamera zu bewegen. Verwenden Sie die integrierte Methode scrollByX:Y:, um die Anzahl der Punkte festzulegen, an denen im Kamera in X- und Y-Richtung zeigen. In diesem Beispiel scrollen Sie durch die Kamera, 200 nach rechts und 100 Punkte nach unten:

Swift

// Move the camera 200 points to the right, and 100 points downwards
let downwards = GMSCameraUpdate.scrollBy(x: 200, y: 100)
mapView.animate(with: downwards)
      

Objective-C

// Move the camera 200 points to the right, and 100 points downwards
GMSCameraUpdate *downwards = [GMSCameraUpdate scrollByX:200.0 Y:100.0];
[mapView animateWithCameraUpdate:downwards];
      

Peilung (Ausrichtung) festlegen

Die Lage ist die Kompassrichtung, gemessen in Grad vom geografischen Norden, für am oberen Rand der Karte angezeigt. Bei einer Peilung von 90 Grad ergibt sich z. B. eine Karte. der obere Rand nach Osten zeigt.

Peilung programmatisch mit GMSCameraPosition oder GMSCameraUpdate festlegen oder mit der animateToBearing:-Methode von GMSMapView.

Swift

mapView.animate(toBearing: 0)
      

Objective-C

[mapView animateToBearing:0];
      

Neigung (Blickwinkel) festlegen

Der Blickwinkel ist die Position der Kamera auf einem Bogen zwischen dem des Kartenmittelpunkts und der Erdoberfläche, gemessen in Grad vom nadir (Richtung direkt unter die Kamera zeigen). Wenn Sie den Blickwinkel ändern, wird die Karte perspektivisch dargestellt, mit Elementen zwischen Kamera und Kartenposition größer proportional größer dargestellt werden und Elemente jenseits der Kartenposition proportional kleiner, wodurch sich ein dreidimensionaler Effekt ergibt.

Der Blickwinkel kann zwischen 0 (senkrecht nach unten auf die Karte) und bis zu einem von der Zoomstufe abhängigen Maximum. Ab Zoomstufe 16 ist die maximale Winkel von 65 Grad. Bei Zoomstufe 10 oder niedriger ist der maximale Winkel 30 Grad. Grad.

Sie können den Blickwinkel programmatisch festlegen. Verwenden Sie dazu GMSCameraPosition oder GMSCameraUpdate oder mit der animateToViewingAngle:-Methode von GMSMapView.

Swift

mapView.animate(toViewingAngle: 45)
      

Objective-C

[mapView animateToViewingAngle:45];
      

Zoom festlegen

Von der Zoomstufe der Kamera hängt in Maps der Maßstab der Karte ab. Bei größerem Zoom sehen Sie mehr Details auf dem Bildschirm. Bei kleineren Zoomstufen können wir mehr von der Welt sehen.

Sie können den Zoom programmatisch mit GMSCameraPosition oder GMSCameraUpdate festlegen oder mit der animateToZoom:-Methode von GMSMapView.

Swift

mapView.animate(toZoom: 12)
      

Objective-C

[mapView animateToZoom:12];
      

Im folgenden Beispiel wird mit der Methode zoomIn: ein GMSCameraUpdate erstellt. -Objekt, um eine Vergrößerungsstufe ausgehend von der aktuellen Ebene zu animieren.

Swift

// Zoom in one zoom level
let zoomCamera = GMSCameraUpdate.zoomIn()
mapView.animate(with: zoomCamera)
      

Objective-C

// Zoom in one zoom level
GMSCameraUpdate *zoomCamera = [GMSCameraUpdate zoomIn];
[mapView animateWithCameraUpdate:zoomCamera];
      

Grenzen setzen

Die Kamera so zu bewegen, dass ein gesamter Bereich von Interesse am besten sichtbar ist Mögliche Zoomstufe und Begrenzungen für die Kameraansicht festlegen. Wenn Sie beispielsweise alle Tankstellen in einem Umkreis von fünf Kilometern um die aktuelle positionieren, bewegen Sie die Kamera so, dass sie alle auf dem Bildschirm zu sehen sind:

  1. Berechnen Sie den GMSCoordinateBounds, den Sie auf dem Bildschirm sichtbar sein.
  2. Verwenden Sie die Methode cameraForBounds:insets: von GMSMapView, um eine neue GMSCameraPosition

Durch Festlegen dieser Grenzen wird sichergestellt, dass die angegebene GMSCoordinateBounds vollständig in in der aktuellen Kartengröße an. Beachten Sie, dass mit dieser Methode Neigung und Lage der Karte auf 0.

Das folgende Beispiel zeigt, wie die Kamera so geändert wird, dass die Städte von Vancouver und Calgary erscheinen beide in derselben Ansicht.

Swift

let vancouver = CLLocationCoordinate2D(latitude: 49.26, longitude: -123.11)
let calgary = CLLocationCoordinate2D(latitude: 51.05,longitude: -114.05)
let bounds = GMSCoordinateBounds(coordinate: vancouver, coordinate: calgary)
let camera = mapView.camera(for: bounds, insets: UIEdgeInsets())!
mapView.camera = camera
      

Objective-C

CLLocationCoordinate2D vancouver = CLLocationCoordinate2DMake(49.26, -123.11);
CLLocationCoordinate2D calgary = CLLocationCoordinate2DMake(51.05, -114.05);
GMSCoordinateBounds *bounds =
    [[GMSCoordinateBounds alloc] initWithCoordinate:vancouver coordinate:calgary];
GMSCameraPosition *camera = [mapView cameraForBounds:bounds insets:UIEdgeInsetsZero];
mapView.camera = camera;
      

Schwenken auf einen bestimmten Bereich beschränken

In diesen Szenarien werden die Grenzen der Karte festgelegt, aber der Nutzer kann dann scrollen oder schwenken. außerhalb dieser Grenzen. Stattdessen können Sie die Koordinaten die Mittelpunkte des Kartenfokus (Kameraziels), sodass Nutzende nur innerhalb dieser Grenzen scrollen und schwenken können.

Eine Einzelhandels-App für ein Einkaufszentrum oder einen Flughafen kann beispielsweise die Karte auf bestimmte Grenzen aus, sodass Nutzende innerhalb dieser Grenzen scrollen und schwenken können.

Um das Schwenken auf bestimmte Grenzen zu beschränken, legen Sie die Eigenschaft cameraTargetBounds von GMSMapView in ein GMSCoordinateBounds-Objekt, das die erforderlichen Grenzen definiert. Wenn Sie die Einschränkung später aufheben möchten, setzen Sie cameraTargetBounds auf „nil“.

Swift

mapView.cameraTargetBounds = bounds
      

Objective-C

mapView.cameraTargetBounds = bounds;
      

Im folgenden Diagramm wird ein Szenario veranschaulicht, in dem das Kameraziel auf einen Bereich beschränkt ist, der etwas größer als der Darstellungsbereich ist. Unter der Voraussetzung, dass das Kameraziel innerhalb des begrenzten Bereichs bleibt, ist der Nutzer in der Lage, zu scrollen und zu schwenken. Das Kreuz stellt das Kameraziel dar:

Diagramm, das einen Kamerarahmen zeigt, der größer ist als das
      Darstellungsbereich.

Die Karte füllt den Darstellungsbereich immer aus, auch wenn das dazu führt, dass im Darstellungsbereich Bereiche außerhalb der festgelegten Grenzen angezeigt werden. Beispiel: Wenn Sie das Kameraziel in einer Ecke des begrenzten Bereichs positionieren, ist der Bereich jenseits der Ecke im Darstellungsbereich sichtbar. Nutzer können in diesen Bereich jedoch nicht weiter scrollen. Dieses Szenario wird im folgenden Diagramm veranschaulicht. Das Kreuz stellt das Kameraziel dar:

Diagramm, das das Kameraziel in der unteren rechten Ecke der
      der Kamerabegrenzungen.

Im folgenden Diagramm weist das Kameraziel sehr eingeschränkte Grenzen auf. Nutzende nur wenig Möglichkeit, die Karte zu scrollen oder zu schwenken. Das Kreuz steht für Kameraziel:

Diagramm, das einen Kamerarahmen zeigt, der kleiner ist als das
      Darstellungsbereich.

Minimalen und maximalen Zoom festlegen

Die globalen Konstanten kGMSMinZoomLevel und kGMSMaxZoomLevel definieren die minimale oder maximale Zoomstufe festlegen. Standardmäßig werden die minZoom und die maxZoom sind diese Konstanten für die Eigenschaften von GMSMapView festgelegt.

Wenn Sie den Bereich der für die Karte verfügbaren Zoomstufen einschränken möchten, legen Sie einen Mindest- und Höchstwert fest Zoomstufe. Der folgende Code beschränkt die Zoomstufe auf einen Wert zwischen 10 und 15.

Swift

let camera = GMSCameraPosition(
  latitude: 41.887,
  longitude: -87.622,
  zoom: 12
)
let mapView = GMSMapView(frame: .zero, camera: camera)
mapView.setMinZoom(10, maxZoom: 15)
      

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:41.887
                                                       longitude:-87.622
                                                             zoom:12];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero
                                        camera:camera];
[mapView setMinZoom:10 maxZoom:15];
      

Sie müssen den Zoombereich mit der Methode setMinZoom:maxZoom: festlegen. Sie haben jedoch kann die aktuellen Werte mit den Attributen minZoom und maxZoom lesen. Dieses ist hilfreich, wenn Sie nur einen der Werte einschränken. Der folgende Code ändert nur die minimale Zoomstufe.

Swift

mapView.setMinZoom(12, maxZoom: mapView.maxZoom)
      

Objective-C

[mapView setMinZoom:12 maxZoom:mapView.maxZoom];
      

Wenn nach der Aktualisierung des minimalen und maximalen Zoomfaktors die Zoomstufe der Kamera auf eine außerhalb des neuen Bereichs liegt, wird der aktuelle Zoom automatisch auf nächsten gültigen Wert anzuzeigen. Im folgenden Code wird beispielsweise ist der ursprüngliche Zoom auf 4 definiert. Wenn der Zoombereich später auf 10 bis 15 eingestellt wird, Zoom wurde auf 10 aktualisiert.

Swift

// Sets the zoom level to 4.
let camera2 = GMSCameraPosition(
  latitude: 41.887,
  longitude: -87.622,
  zoom: 4
)
let mapView2 = GMSMapView(frame: .zero, camera: camera)

// The current zoom, 4, is outside of the range. The zoom will change to 10.
mapView.setMinZoom(10, maxZoom: 15)
      

Objective-C

// Sets the zoom level to 4.
GMSCameraPosition *camera2 = [GMSCameraPosition cameraWithLatitude:41.887
                                                         longitude:-87.622
                                                              zoom:4];
GMSMapView *mapView2 = [GMSMapView mapWithFrame:CGRectZero
                                         camera:camera];
// The current zoom, 4, is outside of the range. The zoom will change to 10.
[mapView setMinZoom:10 maxZoom:15];