iOS için Haritalar SDK'sı ile haritanın kamerasını değiştirerek kullanıcının harita bakış açısını değiştirebilirsiniz.
iOS için Haritalar SDK'sı ile kullanıcılarınız, haritalarınızı yatırıp döndürerek bağlamlarına uygun bir yöne ayarlayabilir. Herhangi bir yakınlaştırma düzeyinde, kullanıcılar çok küçük bir gecikmeyle haritayı kaydırabilir veya perspektifini değiştirebilir.
Kamerada yapılan değişiklikler, eklediğiniz işaretçileri, çoklu çizgileri veya diğer grafikleri değiştirmez, ancak bu eklemeleri yeni görünüme daha iyi uyacak şekilde değiştirmek isteyebilirsiniz.
Haritanın görünümü
iOS için Haritalar SDK'sı, cihazınızın ekranında dünyanın yüzeyini (küre) (düz bir düzlem) temsil etmek üzere Mercator projeksiyonunu kullanır.
Kamera konumu
Harita görünümü, düz bir düzlemde aşağıya bakan kamera olarak modellenir. Kameranın konumu (dolayısıyla haritanın oluşturulması) şu özellikler tarafından belirlenir: hedef (enlem/boylam konumu), dönme, yatırma ve yakınlaştırma.
Hedef (konum)
Kamera hedefi, harita merkezinin enlem ve boylam koordinatları olarak belirtilen konumudur.
Enlem, -85 ile 85 derece (her ikisi de dahil) arasında olabilir. Bu aralığın üstündeki veya altındaki değerler, bu aralıktaki en yakın değere sabitlenir. Örneğin, enlem 100 olarak belirtildiğinde değer 85 olarak ayarlanır. Boylam -180 ile 180 derece arasında değişir. Bu aralığın üzerindeki veya altındaki değerler, (-180, 180) aralığında olacak şekilde sarmalanır. Örneğin, 480, 840 ve 1200 değerlerinin tamamı 120 dereceye kadar sarmalanır.Rulman (yön)
Kamera yönü, haritanın üst kenarına karşılık gelen, gerçek kuzeyden derece cinsinden ölçülen pusula yönünü belirtir. Haritanın merkezinden haritanın üst kenarına dikey bir çizgi çizerseniz, yer, kameranın gerçek kuzey yönüne göre kameranın yönüne (derece cinsinden ölçülür) karşılık gelir.
0 noktası, haritanın üst kısmının gerçek kuzeyi gösterdiği anlamına gelir. Yön değeri 90, doğuya alınması gereken harita noktalarının üst kısmıdır (pusulada 90 derece). 180 değeri, güneye doğru yapılması gereken harita noktalarının üst kısmı anlamına gelir.
Haritalar API'si bir haritanın yönünü değiştirmenize olanak tanır. Örneğin, araba kullanan bir kişi kendi seyahat yönü ile uyumlu bir yol haritası çevirir. Yürüyüşçüler ise harita ve pusulayı kullanarak genellikle haritayı dikey bir çizginin kuzeyi gösterecek şekilde yönlendirir.
Yatır (görüntüleme açısı)
Eğme, kameranın bir yay üzerinde doğrudan haritanın merkez konumunun üzerinde yer alan konumunu tanımlar. Konum, nadir'den (kameranın doğrudan altını gösteren yön) derece cinsinden ölçülür. 0 değeri, doğrudan aşağı doğru doğrulanan bir kameraya karşılık gelir. 0'dan büyük değerler, belirtilen sayıda dereceyle ufağa doğru eğilen bir kameraya karşılık gelir. Görüntüleme açısını değiştirdiğinizde, harita perspektif olarak görünür. Uzaktaki özellikler daha küçük, yakındaki özellikler ise daha büyük görünür. Aşağıdaki resimlerde bu gösterilmektedir.
Aşağıdaki resimlerde görüntüleme açısı 0 derecedir. İlk resimde bunun bir şeması gösterilmektedir. Konum 1 kamera konumu, 2. konum ise geçerli harita konumudur. Ortaya çıkan harita onun altında gösterilir.
Aşağıdaki resimlerde görüntüleme açısı 45 derecedir. Kameranın yukarıdan düz (0 derece) ile zemin (90 derece) arasında bir yay boyunca 3 konumuna kadar hareket ettiğine dikkat edin. Kamera hâlâ haritanın merkez noktasını işaret ediyor ancak 4 konumundaki çizginin temsil ettiği alan artık görülebiliyor.
Bu ekran görüntüsündeki harita, orijinal haritadakiyle aynı noktada ortadadır ancak haritanın üst kısmında daha fazla özellik görüntülenmiştir. Açıyı 45 derecenin üzerine çıkardığınızda, kamera ile harita konumu arasındaki öğeler orantılı olarak daha büyük görünürken harita konumunun dışındaki öğeler orantılı olarak daha küçük görünür ve üç boyutlu bir efekt elde eder.
Tarih aralığını
Kameranın yakınlaştırma düzeyi, haritanın ölçeğini belirler. Daha yüksek yakınlaştırma seviyelerinde ekranda daha fazla ayrıntı görülebilirken, daha küçük yakınlaştırma seviyelerinde ekranda dünyanın daha fazlası görülebilir. Yakınlaştırma seviyesi 0 olduğunda, haritanın ölçeği tüm dünyanın genişliği yaklaşık 256 nokta olacak şekilde olur.
Yakınlaştırma düzeyini 1 artırdığınızda, ekrandaki yerküre genişliği iki katına çıkar. Bu nedenle, N yakınlaştırma düzeyinde dünyanın genişliği yaklaşık 256 * 2N noktadır. Örneğin, yakınlaştırma seviyesi 2 olduğunda tüm dünya yaklaşık 1.024 puan genişliğindedir.
Yakınlaştırma düzeyinin tam sayı olması gerekmez. Haritanın izin verdiği yakınlaştırma seviyeleri aralığı hedef, harita türü ve ekran boyutu gibi bir dizi faktöre bağlıdır. Aralık dışında kalan tüm sayılar, minimum yakınlaştırma seviyesi veya maksimum yakınlaştırma seviyesi olabilecek bir sonraki geçerli değere dönüştürülür. Aşağıdaki listede, her bir yakınlaştırma düzeyinde görmeyi bekleyebileceğiniz yaklaşık ayrıntı düzeyi gösterilmektedir:
- 1: Dünya
- 5: Karalar/kıta
- 10: Şehir
- 15: Sokaklar
- 20: Binalar
İlk kamera konumunu ayarla
Yatma, yatırma ve yakınlaştırma ile birlikte hedefin enlem ve boylamını ayarlamanıza olanak tanıyan GMSCameraPosition
nesnesini kullanarak ilk kamera konumunu ayarlayın.
İlk kamera konumunu ayarlamak için bir GMSMapViewOptions
nesnesi oluşturun ve camera
özelliğini bir GMSCameraPosition
olarak ayarlayın. Ardından, seçeneklerinizi GMSMapView
kolaylık oluşturucusuna iletin.
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];
GMSMapView
nesnesini, varsayılan UIView
init yöntemini kullanarak da oluşturabilirsiniz. Bu durumda, kamera konumu varsayılan konumda başlar ve kamera oluşturulduktan sonra
değiştirilir.
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];
Kamera konumunu değiştirin
Konum, yön, yatırma ve yakınlaştırma ayarlarını yapmak için kamera konumunu programlı bir şekilde değiştirebilirsiniz. GMSMapView
, kamera konumunu değiştirmek için kullanabileceğiniz çeşitli yöntemler sunar. Ancak genellikle GMSCameraPosition
veya GMSCameraUpdate
kullanırsınız:
GMSCameraPosition
, her kamera konumu parametresini değiştirmek için kullandığınız özellikleri ve yöntemleri (hedefleme, taşıma, yatırma ve yakınlaştırma) içerir.GMSCameraUpdate
hedefi, yönü, yatırmayı ve yakınlaştırmayı değiştirmenize olanak tanır ve ayrıca kaydırma, gelişmiş yakınlaştırma, kameranın önceden tanımlanmış sınırlar içinde ortalamasını destekleyen ek kullanışlı yöntemler içerir.
Kamerayı hareket ettirirken kamerayı yeni konumuna "tutturmayı", yani animasyon içermeyi tercih edebilir veya hareketi canlandırabilirsiniz. Örneğin, kameranın hedef konumunda yapılan bir değişikliği canlandırırsanız animasyon önceki konumdan yenisine kaydırılır.
Animasyon, geçerli kamera özellikleri ile yeni kamera özellikleri arasında arapolasyon yapar. Temel Animasyon'u kullanarak animasyonun süresini kontrol edebilirsiniz.
GMSCameraPosition
hareketini kullanın
Kamerayı GMSCameraPosition
ile değiştirmek için yeni bir nesne oluşturur veya mevcut bir nesneyi kopyalayıp GMSMapView
nesnesinin üzerinde ayarlarsınız. Kamerayı yeni konuma animasyonla veya animasyonsuz olarak tutturmak için GMSCameraPosition
nesnesini kullanın.
Enlem, boylam, yakınlaştırma, yön ve görüntüleme açısı gibi kamera özelliklerini yapılandırmak için GMSCameraPosition
nesnesi kullanın. Daha sonra bu nesneyi GMSMapView
öğesinin camera
özelliğini ayarlamak için kullanırsınız.
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];
Varsayılan değerine ayarlamak istediğiniz GMSCameraPosition
özelliklerini atlayın.
Taşıma işlemine animasyon eklemek için camera
özelliğini ayarlamak yerine animateToCameraPosition:
yöntemini kullanın.
GMSCameraUpdate
hareketini kullanın
GMSCameraUpdate
, kamera konumunu güncellemenize ve bu yeni konuma tutturma veya animasyon ekleme arasında seçim yapmanızı sağlar. GMSCameraUpdate
, sağladığı avantaj kolaylık sağlamasıdır. GMSCameraUpdate
ile aynı görevleri gerçekleştirmek için GMSCameraPosition
kullanabilirsiniz ancak GMSCameraUpdate
, kamerayı manipüle etmeyi kolaylaştıracak ek yardımcı yöntemler sağlar.
Örneğin, mevcut yakınlaştırma seviyesini artırmak amacıyla GMSCameraPosition
öğesini kullanmak için önce geçerli yakınlaştırma seviyesini belirlemeniz, ardından yakınlaştırmayı mevcut yakınlaştırma değerinden bir büyük değere ayarlayacağınız bir GMSCameraPosition
nesnesi oluşturmanız gerekir.
Alternatif olarak, zoomIn:
yöntemiyle bir GMSCameraUpdate
nesnesi oluşturun.
Ardından, GMSCameraUpdate
nesnesini GMSMapView
animateWithCameraUpdate:
yöntemine geçirerek kamerayı güncelleyin.
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];
Bunun yerine, kamerayı yeni konuma tutturmak için GMSMapView
moveCamera:
yöntemini kullanın.
Bir sonraki örnekte, kameranın Vancouver'ı ortalamasını sağlamak için GMSCameraUpdate
hareketini canlandırmak amacıyla kullanıyorsunuz.
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
nesnesi oluşturma
Yöntemlerinden birini kullanarak bir GMSCameraUpdate
nesnesi oluşturun.
zoomIn:
vezoomOut:
- Diğer tüm özellikleri aynı tutarken geçerli yakınlaştırma düzeyini 1, 0 olarak değiştirin.
zoomTo:
- Yakınlaştırma düzeyini verilen değerle değiştirir, diğer tüm özellikleri aynı tutar.
zoomBy:
- Yakınlaştırma seviyesini verilen değer kadar artırır (veya değer negatifse azaltır).
zoomBy:atPoint:
- Değer negatifse yakınlaştırma düzeyini belirtilen değere göre artırır (veya azaltır) ve bu sırada belirtilen noktanın ekrandaki konumunu korur.
setTarget:
- Diğer tüm özellikleri korurken kameranın enlem ve boylamını değiştirir.
setTarget:zoom:
- Diğer tüm özellikleri korurken kameranın enlem, boylam ve yakınlaştırma ayarlarını değiştirir.
setCamera:
- Yeni bir
GMSCameraPosition
ayarlar. scrollByX:Y:
- Haritayı belirtilen nokta sayısına göre hareket ettirmek için kameranın enlem ve boylamını değiştirir. Pozitif x değeri kameranın sağa doğru hareket etmesine neden olur ve harita sola gitmiş gibi görünür. Pozitif y değeri kameranın aşağı hareket etmesine ve dolayısıyla haritanın yukarıya hareket etmesine neden olur. Kaydırma, kameranın mevcut yönüne göre yapılır. Örneğin, kameranın yönü 90 dereceyse doğu yönü "yukarı"dır.
fitBounds:
- Kamerayı, ekranda belirtilen sınırları mümkün olan en yüksek yakınlaştırma düzeyinde ortalayacak şekilde dönüştürür. 64 noktanın sınırlarına varsayılan bir dolgu uygular.
fitBounds:withPadding:
- Kamerayı, ekranda belirtilen sınırları mümkün olan en yüksek yakınlaştırma düzeyinde ortalayacak şekilde dönüştürür. Sınırlayıcı kutunun tüm kenarları için aynı dolguyu nokta cinsinden belirtmek üzere bu yöntemi kullanın.
fitBounds:withEdgeInsets:
- Kamerayı, ekranda belirtilen sınırları mümkün olan en yüksek yakınlaştırma düzeyinde ortalayacak şekilde dönüştürür.
UIEdgeInsets
ile sınırlayıcı kutunun her bir kenarı için dolguyu bağımsız olarak belirtirsiniz.
Tek bir mülkü değiştirmek için GMSMapView
kullanma
GMSMapView
, bir GMSCameraPosition
nesne veya GMSCameraUpdate
nesne kullanmadan kamerayı hareket ettirmenizi sağlayan çeşitli yöntemler sunar. animateToLocation:
veya animateToZoom:
gibi bu yöntemlerle, tek bir kamera özelliğinde yapılan değişikliği animasyon haline getirebilirsiniz.
Örneğin, kamera eğimindeki bir değişikliği canlandırmak için toViewingAngle:
yöntemini kullanın.
Swift
mapView.animate(toViewingAngle: 45)
Objective-C
[mapView animateToViewingAngle:45];
Hedef belirleyin (konum)
Konum, haritanın merkezini belirler. Konumlar enlem ve boylama göre belirtilir ve CLLocationCoordinate2DMake
ile oluşturulmuş bir CLLocationCoordinate2D
ile programatik olarak gösterilir.
Konumu değiştirmek için GMSCameraPosition
öğesini kullanın. Bu örnekte, harita yeni konuma
yerleştirir.
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];
Değişikliği canlandırmak ve haritayı yeni konuma kaydırmak için camera
özelliğini ayarlamak yerine animateToCameraPosition:
yöntemini kullanabilirsiniz. İsterseniz GMSMapView
üzerinde animateToLocation:
yöntemini de kullanabilirsiniz.
Swift
mapView.animate(toLocation: CLLocationCoordinate2D(latitude: -33.868, longitude: 151.208))
Objective-C
[mapView animateToLocation:CLLocationCoordinate2DMake(-33.868, 151.208)];
Kamerayı hareket ettirmek için bir GMSCameraUpdate
nesnesi de oluşturabilirsiniz. Kamerayı X ve Y yönlerinde kaydırabileceğiniz nokta sayısını belirtmek için yerleşik scrollByX:Y:
yöntemini kullanın. Bu örnekte kamerayı 200 nokta sağa ve 100 nokta aşağı kaydırıyorsunuz:
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];
Yönü ayarla
Yön, haritanın üst kenarı için gerçek kuzeyden derece cinsinden ölçülen pusula yönüdür. Örneğin, 90 derecelik bir nokta, üst kenarın doğuya doğru yöneldiği bir harita oluşturur.
Ayarı GMSCameraPosition
veya GMSCameraUpdate
ile programatik olarak ya da GMSMapView
olan animateToBearing:
yöntemiyle ayarlayın.
Swift
mapView.animate(toBearing: 0)
Objective-C
[mapView animateToBearing:0];
Yatırmayı ayarla (görüntüleme açısı)
Görüntüleme açısı, kameranın tam olarak haritanın merkez konumu ile Dünya yüzeyi arasındaki bir yay üzerindeki konumudur ve nadir'den (kameranın hemen altını gösteren yön) derece cinsinden ölçülür. Görüntüleme açısını değiştirdiğinizde, harita perspektif olarak görünür. Kamera ile harita konumu arasındaki özellikler orantılı olarak daha büyük görünür ve harita konumunun dışındaki özellikler orantılı olarak daha küçük görünür. Bu da üç boyutlu bir efekt oluşturur.
Görüntüleme açısı 0 (haritada doğrudan aşağıyı gösterir) ile yakınlaştırma seviyesine bağlı bir maksimum değere kadar değişebilir. 16 veya daha yüksek yakınlaştırma seviyesi için maksimum açı 65 derecedir. 10 veya daha düşük yakınlaştırma seviyeleri için maksimum açı 30 derecedir.
Görüntüleme açısını programatik olarak GMSCameraPosition
veya GMSCameraUpdate
ya da animateToViewingAngle:
yöntemiyle GMSMapView
ayarlayın.
Swift
mapView.animate(toViewingAngle: 45)
Objective-C
[mapView animateToViewingAngle:45];
Yakınlaştırmayı ayarla
Kameranın yakınlaştırma düzeyi, haritanın ölçeğini belirler. Yüksek yakınlaştırma seviyelerinde ekranda daha fazla ayrıntı görebilirken, düşük yakınlaştırma seviyelerinde dünyayı daha fazla görebilirsiniz.
Yakınlaştırmayı GMSCameraPosition
veya GMSCameraUpdate
ile ya da GMSMapView
'in animateToZoom:
yöntemiyle programatik olarak ayarlayın.
Swift
mapView.animate(toZoom: 12)
Objective-C
[mapView animateToZoom:12];
Aşağıdaki örnekte, geçerli düzeyden bir düzey yakınlaştırma animasyonu sağlayacak bir GMSCameraUpdate
nesnesi oluşturmak için zoomIn:
yöntemi kullanılmaktadır.
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];
Sınırları belirleyin
Kamerayı, tüm ilgilenilen alanın mümkün olan en yüksek yakınlaştırma düzeyinde görülebilecek şekilde hareket ettirmek için kamera görünümünün sınırlarını belirleyin. Örneğin, kullanıcının mevcut konumuna 8 km mesafedeki tüm benzin istasyonlarını görüntülemek istiyorsanız kamerayı tüm istasyonlar ekranda görünecek şekilde hareket ettirin.
- Ekranda görünmesini istediğiniz
GMSCoordinateBounds
değerini hesaplayın. - Yeni bir
GMSCameraPosition
döndürmek içinGMSMapView
cameraForBounds:insets:
yöntemini kullanın.
Bu sınırların ayarlanması, belirtilen GMSCoordinateBounds
değerinin geçerli haritanın boyutuyla tamamen uyumlu olmasını sağlar. Bu yöntemin, haritanın yatmasını ve yönünü 0'a ayarladığını unutmayın.
Aşağıdaki örnekte, Vancouver ve Calgary şehirlerinin aynı görünümde görünmesi için kameranın nasıl değiştirileceği gösterilmektedir.
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;
Kullanıcının kaydırmasını belirli bir alanla sınırla
Bu senaryolar haritanın sınırlarını belirler, ancak kullanıcı daha sonra bu sınırların dışına kaydırma veya kaydırma yapabilir. Bunun yerine, kullanıcıların yalnızca bu sınırlar içinde kaydırma ve kaydırma işlemleri yapabilmesi için, haritanın odak noktasının (kamera hedefi) koordinat merkezi sınırlarını sınırlandırmak isteyebilirsiniz.
Örneğin, bir alışveriş merkezi veya havaalanına yönelik perakende uygulaması, haritayı belirli sınırlarla sınırlandırarak kullanıcıların bu sınırlar içinde gezinmesine ve kaydırma yapmasına olanak tanımak isteyebilir.
Kaydırmayı belirli sınırlarla kısıtlamak için GMSMapView
öğesinin cameraTargetBounds
özelliğini, gerekli sınırları tanımlayan bir GMSCoordinateBounds
nesnesi olarak ayarlayın.
Kısıtlamayı daha sonra kaldırmak için cameraTargetBounds
değerini nil olarak ayarlayın.
Swift
mapView.cameraTargetBounds = bounds
Objective-C
mapView.cameraTargetBounds = bounds;
Aşağıdaki şemada, kamera hedefinin görüntü alanından biraz daha büyük bir alanla sınırlandırıldığı bir senaryo gösterilmektedir. Kamera hedefi sınırlı alanda kaldığı sürece kullanıcı sayfayı kaydırabilir ve kaydırabilir. Çarpım, kamera hedefini temsil eder:
Harita, görüntü alanında tanımlanan sınırların dışında kalan alanlar gösterilse bile her zaman görüntü alanını doldurur. Örneğin, kamera hedefini sınırlı alanın bir köşesine konumlandırırsanız köşenin dışındaki alan, görüntü alanında görünür ancak kullanıcılar ekranı bu alana daha fazla kaydıramaz. Aşağıdaki şemada bu senaryo gösterilmektedir. Çarpım, kamera hedefini temsil eder:
Aşağıdaki şemada, kamera hedefinin sınırları çok kısıtlıdır ve bu nedenle kullanıcıya haritayı kaydırma veya kaydırma olanağı çok azdır. Çarpım, kamera hedefini temsil eder:
Minimum veya maksimum yakınlaştırmayı ayarlayın
kGMSMinZoomLevel
ve kGMSMaxZoomLevel
genel sabitleri, minimum veya maksimum yakınlaştırma değerlerini tanımlar. Varsayılan olarak, GMSMapView
öğesinin minZoom
ve maxZoom
özellikleri bu sabit değerlere ayarlanmıştır.
Haritada kullanılabilen yakınlaştırma düzeyleri aralığını kısıtlamak için bir min. ve maksimum yakınlaştırma düzeyi belirleyin. Aşağıdaki kod, yakınlaştırma düzeyini 10 ile 15 arasında sınırlandırır.
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];
Yakınlaştırma aralığını, setMinZoom:maxZoom:
yöntemiyle ayarlamanız gerekir ancak minZoom
ve maxZoom
özelliklerini kullanarak geçerli değerleri okuyabilirsiniz. Bu yaklaşım, değerlerden yalnızca birini kısıtlarken işe yarar. Aşağıdaki kod yalnızca minimum yakınlaştırma seviyesini değiştirir.
Swift
mapView.setMinZoom(12, maxZoom: mapView.maxZoom)
Objective-C
[mapView setMinZoom:12 maxZoom:mapView.maxZoom];
Min. ve maksimum yakınlaştırma güncellendikten sonra kameranın yakınlaştırma seviyesi yeni aralığın dışındaki bir değere ayarlanırsa geçerli yakınlaştırma, en yakın geçerli değeri gösterecek şekilde otomatik olarak güncellenir. Örneğin, aşağıdaki kodda orijinal yakınlaştırma değeri 4 olarak tanımlanmıştır. Yakınlaştırma aralığı daha sonra 10-15 olarak ayarlandığında, mevcut yakınlaştırma 10 olarak güncellenir.
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];