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 die Karten neigen und drehen, um sie an eine für ihren Kontext geeignete Ausrichtung anzupassen. Bei jeder Zoomstufe können Nutzer die Karte schwenken oder die Perspektive mit sehr geringer Latenz ändern.
Änderungen an der Kamera wirken sich nicht auf Markierungen, Polylinien oder andere hinzugefügte Grafiken aus. Sie können diese Ergänzungen aber ändern, um sie besser an die neue Ansicht anzupassen.
Kartenansicht
Im Maps SDK for iOS wird die Mercator-Projektion verwendet, um die Weltfläche (eine Kugel) auf dem Bildschirm Ihres Geräts (eine flache Ebene) darzustellen.
Kameraposition
Die Kartenansicht wird so modelliert, als wäre 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, Anzeigewinkel und Zoom.

Ziel (Ort)
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. Autofahrer drehen 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 der Kartenmitte 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.
![]() |
![]() |
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.
![]() |
![]() |
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
Die Zoomstufe der Kamera bestimmt die Skalierung der Karte. Bei größeren Zoomstufen sind auf dem Bildschirm mehr Details zu sehen, bei kleineren Zoomstufen erhalten Sie einen größeren Überblick. Bei Zoomstufe 0 hat die Karte einen Maßstab 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 ca. 256 × 2N Punkte. Bei Zoomstufe 2 ist sie demzufolge circa 1.024 Punkte breit.
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. Ziel, Kartentyp und 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
![]() |
![]() |
![]() |
Anfängliche Kameraposition festlegen
Legen Sie die Anfangskameraposition mit dem GMSCameraPosition
-Objekt fest, mit dem Sie den Breiten- und Längengrad des Ziels zusammen mit Peilung, Neigung und Zoomstufe festlegen können.
Wenn Sie die anfängliche Kameraposition festlegen möchten, erstellen Sie ein GMSCameraPosition
-Objekt und übergeben Sie dieses Objekt an den Konstruktor GMSMapView
.
Swift
let camera = GMSCameraPosition( latitude: -33.8683, longitude: 151.2086, zoom: 16 ) mapView = GMSMapView(frame: self.view.bounds, camera: camera)
Objective-C
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:16]; mapView = [GMSMapView mapWithFrame:self.view.bounds camera:camera];
Sie können auch das GMSMapView
-Objekt mit der standardmäßigen Initialisierungsmethode UIView
erstellen.
In diesem Fall beginnt die Kameraposition am Standardstandort und lässt sich nach dem Erstellen ändern.
Swift
mapView = GMSMapView(frame: self.view.bounds)
Objective-C
mapView = [[GMSMapView alloc] initWithFrame:self.view.bounds];
Kameraposition ändern
Sie können die Kameraposition programmatisch ändern, um Position, Ausrichtung, Neigung und Zoomstufe festzulegen. GMSMapView
bietet mehrere Methoden, mit denen du die Kameraposition ändern kannst. Üblicherweise verwendest du aber GMSCameraPosition
oder GMSCameraUpdate
:
GMSCameraPosition
enthält Eigenschaften und Methoden, mit denen Sie die einzelnen Parameter für die Kameraposition ändern können: Ziel, Peilung, Neigung und Zoom.Mit
GMSCameraUpdate
können Sie Ziel, Peilung, Neigung und Zoom ändern und zusätzliche Methoden bereitstellen, die das Scrollen, die erweiterte Zoomfunktion oder eine zentrierte Kamera innerhalb vordefinierter Grenzen unterstützen.
Wenn Sie die Kamera bewegen, können Sie sie an der neuen Position andocken, also keine Animation anzeigen. Wenn Sie beispielsweise eine Änderung am Zielstandort der Kamera animieren, schwenkt die Animation vom alten zum neuen Standort.
Die Animation wird zwischen den aktuellen und den neuen Kameraattributen interpoliert. Die Dauer der Animation kann mit der Core-Animation gesteuert werden.
„GMSCameraPosition
“ verwenden
Wenn Sie die Kamera mit GMSCameraPosition
ändern möchten, erstellen Sie ein neues Objekt oder kopieren Sie ein vorhandenes und legen es dann für das GMSMapView
-Objekt fest. Verwenden Sie das Objekt GMSCameraPosition
, um die Kamera mit oder ohne Animation an dem neuen Ort aufzunehmen.
Mit einem GMSCameraPosition
-Objekt können Sie Kameraeigenschaften wie Breitengrad, Längengrad, Zoom, Peilung und Blickwinkel konfigurieren. Anschließend 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 GMSCameraPosition
-Property aus, die Sie auf den Standardwert festlegen möchten.
Verwende die Methode animateToCameraPosition:
, statt das Attribut camera
festzulegen, um die Verschiebung zu animieren.
„GMSCameraUpdate
“ verwenden
Mit GMSCameraUpdate
können Sie die Kameraposition aktualisieren und festlegen, ob sie an der neuen Position ausgerichtet werden soll. Der Vorteil von GMSCameraUpdate
ist Komfort. Sie können GMSCameraPosition
verwenden, um dieselben Aufgaben wie GMSCameraUpdate
auszuführen. Allerdings bietet GMSCameraUpdate
zusätzliche Hilfsmethoden, mit denen Sie die Kamera einfacher manipulieren können.
Wenn Sie beispielsweise die aktuelle Zoomstufe mit GMSCameraPosition
erhöhen möchten, müssen Sie zuerst die aktuelle Zoomstufe festlegen und dann ein GMSCameraPosition
-Objekt erstellen, bei dem die Zoomstufe auf einen Wert festgelegt wird, der größer als der aktuelle Zoom ist.
Alternativ können Sie ein GMSCameraUpdate
-Objekt mit der Methode zoomIn:
erstellen. Aktualisieren Sie dann die Kamera. Dazu übergeben Sie das Objekt GMSCameraUpdate
an die Methode animateWithCameraUpdate:
von GMSMapView
.
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 stattdessen die Methode moveCamera:
von GMSMapView
, um die Kamera auf die neue Position zu bringen.
Im nächsten Beispiel verwenden Sie GMSCameraUpdate
, um eine Bewegung der Kamera zu animieren und sie in 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];
Ein GMSCameraUpdate
-Objekt erstellen
Erstellen Sie mithilfe einer der Methoden ein GMSCameraUpdate
-Objekt.
zoomIn:
undzoomOut:
- Die aktuelle Zoomstufe wird um 1,0 geändert, während alle anderen Eigenschaften beibehalten werden.
zoomTo:
- Die Zoomstufe wird in den angegebenen Wert geändert, während alle anderen Eigenschaften beibehalten werden.
zoomBy:
- Erhöht oder verringert (bei einem negativen Wert) die Zoomstufe um den angegebenen Wert.
zoomBy:atPoint:
- Erhöht oder verringert, wenn der Wert negativ ist, die Zoomstufe um den angegebenen Wert, unter Beibehaltung der Position des angegebenen Punkts auf dem Bildschirm.
setTarget:
- Die Breiten- und Längengrade werden geändert, alle anderen Eigenschaften bleiben jedoch erhalten.
setTarget:zoom:
- Die Breiten- und Längengrade sowie die Zoomstufe der Kamera werden geändert, alle anderen Eigenschaften werden beibehalten.
setCamera:
- Setzt ein neues
GMSCameraPosition
. scrollByX:Y:
- Ändert den Breiten- und Längengrad der Kamera, um die Karte um die angegebene Anzahl von Punkten zu verschieben. Ein positiver X-Wert führt dazu, dass die Kamera nach rechts bewegt wird, sodass der Eindruck entsteht, die Karte wäre nach links verschoben worden. Ein positiver y-Wert führt dazu, dass die Kamera nach unten bewegt wird, sodass der Eindruck entsteht, die Karte wäre nach oben verschoben worden. Das Scrollen erfolgt relativ zur aktuellen Peilung der Kamera. Bei einer Kameraposition von 90 Grad ist beispielsweise Osten „oben“.
fitBounds:
- Transformiert die Kamera, um die angegebenen Grenzen auf dem Bildschirm mit der größtmöglichen Zoomstufe zu zentrieren. Wendet einen Standardschwellenwert auf die Grenzen von 64 Punkten an.
fitBounds:withPadding:
- Transformiert die Kamera, um die angegebenen Grenzen auf dem Bildschirm mit der größtmöglichen Zoomstufe zu zentrieren. Verwenden Sie diese Methode, um den Abstand für alle Seiten des Begrenzungsrahmens in Punkten festzulegen.
fitBounds:withEdgeInsets:
- Transformiert die Kamera, um die angegebenen Grenzen auf dem Bildschirm mit der größtmöglichen Zoomstufe zu zentrieren. Mit
UIEdgeInsets
legen Sie den Abstand für jede Seite des Begrenzungsrahmens separat fest.
Mit GMSMapView
eine einzelne Property ändern
GMSMapView
bietet mehrere Methoden, mit denen du die Kamera ohne GMSCameraPosition
- oder GMSCameraUpdate
-Objekt verschieben kannst. Mit diesen Methoden wie animateToLocation:
oder animateToZoom:
können Sie eine Änderung an einer einzelnen Kameraeigenschaft animieren.
Mit der Methode toViewingAngle:
können Sie beispielsweise eine Änderung der Kameraneigung animieren.
Swift
mapView.animate(toViewingAngle: 45)
Objective-C
[mapView animateToViewingAngle:45];
Ziel (Ort) festlegen
Der Standort bestimmt die Kartenmitte. Standorte werden nach Breiten- und Längengrad angegeben und programmatisch mit einem CLLocationCoordinate2D
dargestellt, das mit CLLocationCoordinate2DMake
erstellt wird.
Um den Standort zu ändern, verwenden Sie GMSCameraPosition
. In diesem Beispiel ist die Karte auf den neuen Standort ausgerichtet.
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];
Wenn Sie die Änderung animieren und die Karte zum neuen Standort schwenken möchten, können Sie die Methode animateToCameraPosition:
verwenden, statt das Attribut camera
festzulegen.
Alternativ können Sie die Methode animateToLocation:
für GMSMapView
verwenden.
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. Geben Sie mithilfe der integrierten Methode scrollByX:Y:
an, wie viele Punkte die Kamera in x- und y-Richtungen scrollen soll. In diesem Beispiel scrollst du die Kamera 200 Punkte 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];
Ausrichtung (Ausrichtung)
Die Lage ist die Kompassrichtung, die in Grad vom geografischen Norden aus vom oberen Rand der Karte gemessen wird. Eine Lage von 90 Grad führt beispielsweise dazu, dass auf einer Karte Osten oben ist.
Legen Sie die Lage programmatisch mit GMSCameraPosition
oder GMSCameraUpdate
oder mit der Methode animateToBearing:
von GMSMapView
fest.
Swift
mapView.animate(toBearing: 0)
Objective-C
[mapView animateToBearing:0];
Neigung festlegen (Sichtfeld)
Der Blickwinkel ist die Position der Kamera auf einem Bogen, der vom Mittelpunkt der Karte zur Erdoberfläche verläuft, gemessen im Gradabstand vom Nadir (Richtung von der Kamera direkt nach unten). Wenn Sie den Blickwinkel ändern, wird die Karte perspektivisch dargestellt. Dabei sind Objekte zwischen der Kamera und der Kartenposition proportional größer, während Elemente über der Kartenposition proportional kleiner erscheinen, was zu einem dreidimensionalen Effekt führt.
Der Blickwinkel kann zwischen 0 (gerade nach unten auf der Karte) und bis zu einem maximalen Zoomfaktor liegen. Bei Zoomstufe 16 und höher beträgt der maximale Winkel 65 Grad. Bei Zoomstufe 10 und darunter beträgt der maximale Winkel 30 Grad.
Legen Sie den Betrachtungswinkel programmatisch mit GMSCameraPosition
oder GMSCameraUpdate
oder mit der Methode animateToViewingAngle:
von GMSMapView
fest.
Swift
mapView.animate(toViewingAngle: 45)
Objective-C
[mapView animateToViewingAngle:45];
Zoom festlegen
Die Zoomstufe der Kamera bestimmt die Skalierung der Karte. Bei größeren Zoomstufen sehen Sie auf dem Bildschirm mehr Details, bei kleineren Zoomstufen erhalten Sie einen besseren Überblick.
Legen Sie den Zoom programmatisch mit GMSCameraPosition
oder GMSCameraUpdate
oder mit der Methode animateToZoom:
von GMSMapView
fest.
Swift
mapView.animate(toZoom: 12)
Objective-C
[mapView animateToZoom:12];
Im folgenden Beispiel wird die Methode zoomIn:
verwendet, um ein GMSCameraUpdate
-Objekt zu erstellen, mit dem eine Zoomstufe um die aktuelle Stufe animiert wird.
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 festlegen
Um die Kamera so zu bewegen, dass ein gesamter Bereich von Interesse mit der größtmöglichen Zoomstufe dargestellt wird, müssen Sie die Grenzen der Kameraansicht festlegen. Wenn Sie beispielsweise alle Tankstellen in einem Umkreis von 5 km um die aktuelle Position des Nutzers darstellen möchten, verschieben Sie die Kamera so, dass sie alle auf dem Bildschirm zu sehen sind:
- Berechnen Sie den
GMSCoordinateBounds
, der auf dem Bildschirm sichtbar sein soll. - Verwenden Sie die
cameraForBounds:insets:
-Methode vonGMSMapView
, um eine neueGMSCameraPosition
zurückzugeben.
Wenn Sie diese Grenzen festlegen, wird der jeweilige GMSCoordinateBounds
vollständig in die Größe der aktuellen Karte eingebunden. Dabei wird die Neigung und Lage der Karte auf 0 festgelegt.
Im folgenden Beispiel wird gezeigt, wie Sie die Kamera so ändern, dass die Städte Vancouver und Calgary in derselben Ansicht zu sehen sind.
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 den Szenarien oben legen Sie die Grenzen der Karte fest. Der Nutzer kann jedoch außerhalb dieser Grenzen scrollen oder schwenken. Sie können aber auch die Breiten- und Längengradgrenzwerte des Kartenfokus (Kameraziels) einschränken, sodass Nutzer nur innerhalb dieser Grenzen scrollen und schwenken können.
Beispiel: Eine Einzelhandels-App für ein Einkaufszentrum oder einen Flughafen kann die Karte auf bestimmte Grenzen beschränken und ermöglicht Nutzern das Scrollen und Schwenken innerhalb dieser Grenzen.
Wenn Sie das Schwenken auf bestimmte Grenzen beschränken möchten, legen Sie die Eigenschaft cameraTargetBounds
von GMSMapView
auf ein GMSCoordinateBounds
-Objekt fest, das die erforderlichen Grenzen definiert. Wenn Sie die Einschränkung später entfernen 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:

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:

Im folgenden Diagramm weist das Kameraziel sehr beschränkte Grenzen auf und bietet dem Nutzer nur wenige Möglichkeiten zum Scrollen oder Schwenken. Das Kreuz stellt das Kameraziel dar:

Minimalen und maximalen Zoom festlegen
Die globalen Konstanten kGMSMinZoomLevel
und kGMSMaxZoomLevel
definieren die minimalen oder maximalen Zoomwerte. Standardmäßig sind die Eigenschaften minZoom
und maxZoom
von GMSMapView
auf diese Konstanten eingestellt.
Wenn Sie den Bereich der Zoomstufen auf der Karte einschränken möchten, legen Sie eine minimale und maximale Zoomstufe fest. Mit dem folgenden Code wird die Zoomstufe auf einen Wert zwischen 10 und 15 beschränkt.
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 können die aktuellen Werte jedoch mit den Attributen minZoom
und maxZoom
lesen.
Dieser Ansatz ist hilfreich, wenn nur einer der Werte eingeschränkt wird. Mit dem folgenden Code wird nur die minimale Zoomstufe geändert.
Swift
mapView.setMinZoom(12, maxZoom: mapView.maxZoom)
Objective-C
[mapView setMinZoom:12 maxZoom:mapView.maxZoom];
Wenn nach dem Aktualisieren des minimalen und maximalen Zoomfaktors die Zoomstufe der Kamera auf einen Wert außerhalb des neuen Bereichs festgelegt wird, wird der aktuelle Zoom automatisch aktualisiert, sodass der nächstgelegene gültige Wert angezeigt wird. Im folgenden Code wird der ursprüngliche Zoom beispielsweise mit 4 definiert. Wenn der Zoombereich später auf 10–15 festgelegt wird, wird der aktuelle Zoom 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];