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.
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.
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
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
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:
undzoomOut:
- 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:
- Berechnen Sie den
GMSCoordinateBounds
, den Sie auf dem Bildschirm sichtbar sein. - Verwenden Sie die Methode
cameraForBounds:insets:
vonGMSMapView
, um eine neueGMSCameraPosition
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:
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 eingeschränkte Grenzen auf. Nutzende nur wenig Möglichkeit, die Karte zu scrollen oder zu schwenken. Das Kreuz steht für Kameraziel:
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];