Kamera ve görünüm

Platform seçin: Android iOS JavaScript

iOS için Haritalar SDK'sı ile kullanıcının haritadaki bakış açısını değiştirebilirsiniz kameranın yerini değiştirebilirsiniz.

iOS için Haritalar SDK'sı ile kullanıcılarınız, Google Haritalar'daki bağlam açısından faydalı bir yöne ayarlamak için harita oluşturur. Herhangi bir yakınlaştırma ayarında kullanıcılar haritayı kaydırabiliyor veya perspektifini çok az gecikmeyle değiştirebiliyor.

Kamerada yapılan değişiklikler, önceden gördüğünüz işaretçileri, çoklu çizgileri veya diğer grafikleri değiştirmez Bununla birlikte, bu eklemeleri sitenizin yeni sürümüne daha uygun yeni bir görünüm oluşturabilirsiniz.

Haritanın görünümü

iOS için Haritalar SDK'sı Mercator tahmin cihazınızın ekranındaki dünyanın yüzeyini (küre) (düz bir yüzey) temsil edecek şekilde uçak).

Kamera konumu

Harita görünümü, düz bir düzlemde aşağıya bakan kamera olarak modellenir. Konum (dolayısıyla haritanın oluşturulmasının) şu özellikleri içerir: target (enlem/boylam konumu), gemi, eğme, ve yakınlaştırma tuşlarına basın.

Kamera özellikleri şeması

Hedef (konum)

Kamera hedefi, harita merkezinin konumudur ve enlem ve boylam koordinatları.

Enlem, -85 ile 85 derece (her ikisi de dahil) arasında olabilir. Yukarıdaki değerler veya bu aralığın 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. Bunun üstündeki veya altındaki değerler aralığı, (-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ü, pusula yönünü belirtir. Gerçek kuzeyden derece olarak ölçülen, karşılık gelen sayfanın üst kenarına dokunun. Haritanın merkezinden üst kenara dikey bir çizgi çizerseniz haritasında, yön, kameranın yönüne (derece cinsinden ölçülür) karşılık gelir gerçeğe dönüşüyor.

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). Değer 180, 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 Yürüyüşçüler, harita ve seyahat yönleriyle uyumlu hale getirmek için genellikle yol haritasını dönüştürürler. dikey bir çizgi genellikle kuzeyi işaret edecek şekilde haritayı yönlendirir.

Yatır (görüntüleme açısı)

Eğme, kameranın konumunu doğrudan harita üzerinde bir yay üzerinde tanımlar merkez konum, uzaklık derecesi cinsinden ölçülür nadir (doğrudan kameranın altını gösteren yön). 0 değeri, doğru kameraya karşılık gelir direksiyona geçmeyin. 0'dan büyük değerler, belirtilen derece sayısı. Görüntüleme açısını değiştirdiğinizde, harita uzaktaki özelliklerle perspektifte görünür daha küçük ve yakındaki özellikler daha büyük görünüyor. Aşağıdakiler bunu gösteren resim.

Aşağıdaki resimlerde görüntüleme açısı 0 derecedir. İlk resimde bir bir şemadır. konum 1 kamera konumu, 2. konum ise geçerli harita konumudur. Ortaya çıkan harita onun altında gösterilir.

Kamerası 0 görüntüleme açısında, 18 yakınlaştırma düzeyinde yerleştirilmiş bir haritanın ekran görüntüsü.
Kameranın varsayılan görüntüleme açısıyla görüntülenen harita.
Kameranın varsayılan konumunu, doğrudan harita konumunun üzerinde 0 derecelik bir açıyla gösteren şema.
Kameranın varsayılan görüntüleme açısı.

Aşağıdaki resimlerde görüntüleme açısı 45 derecedir. Kameranın yukarıdan düz (0 derece) ve zemin (90 derece) arasında bir yay boyunca yarım yönde hareket eder, 3. konuma getirin. Kamera hâlâ haritanın merkez noktasını doğruluyor, ancak alan artık 4 konumundaki satırla temsil edilen görünür hale gelir.

Kameranın 45 derece görüntüleme açısında, 18 yakınlaştırma düzeyinde yerleştirildiği haritanın ekran görüntüsü.
45 derecelik görüş açısıyla görüntülenen harita.
Kameranın görüş açısının 45 dereceye ayarlandığını, yakınlaştırma seviyesinin ise hâlâ 18'e ayarlandığını gösteren şema.
45 derecelik kamera görüş açısı.

Bu ekran görüntüsündeki harita, ancak haritanın üst kısmında daha fazla özellik göründü. Siz açıyı 45 derecenin üzerine çıkar (kamera ile harita arasındaki özellikler) harita konumunun dışındaki özellikler ise orantısal olarak daha büyük görünür ve orantılı olarak daha küçük görünürler ve üç boyutlu bir etki yaratırlar.

Tarih aralığını

Kameranın yakınlaştırma düzeyi, haritanın ölçeğini belirler. Daha geniş yakınlaştırma ekranda daha fazla ayrıntı görülebilirken, düşük zum düzeylerinde ekranda daha fazla yer görülebilir. Yakınlaştırma düzeyi 0 olduğunda, haritanın ölçeği tüm dünyanın yaklaşık 256 puntoluk bir genişlik sağlar.

Yakınlaştırma düzeyini 1 artırdığınızda, ekrandaki yerküre genişliği iki katına çıkar. Dolayısıyla, N yakınlaştırma düzeyinde, dünyanın genişliği yaklaşık olarak 256 * 2N puan. Örneğin, 2. yakınlaştırma düzeyinde, tüm dünya yaklaşık olarak 1024 puan genişliğinde.

Yakınlaştırma düzeyinin tam sayı olması gerekmez. Yakınlaştırma aralığı Harita tarafından izin verilen seviyeler, hedef, konum, seçenek harita türünü ve ekran boyutunu seçin. Aralık dışındaki tüm sayılar şuna dönüştürülür: minimum zum düzeyi veya en yakın geçerli değer olabilir. Maksimum yakınlaştırma seviyesi. Aşağıdaki listede yaklaşık ayrıntı düzeyi gösterilmektedir görebilirsiniz:

  • 1: Dünya
  • 5: Karalar/kıta
  • 10: Şehir
  • 15: Sokaklar
  • 20: Binalar
Aşağıdaki resimlerde, farklı yakınlaştırma seviyelerinin görsel görünümü gösterilmektedir:
5 yakınlaştırma düzeyindeki bir haritanın ekran görüntüsü
Yakınlaştırma seviyesi 5 olan bir harita.
15 yakınlaştırma düzeyindeki bir haritanın ekran görüntüsü
Yakınlaştırma seviyesinde 15 olan bir harita.
20 yakınlaştırma düzeyinde bir haritanın ekran görüntüsü
Yakınlaştırma düzeyinde bir harita.

İlk kamera konumunu ayarla

İlk kamera konumunu GMSCameraPosition hedefin enlem ve boylamını ayarlamanıza olanak tanıyan nesnel taşıma, yatırma ve yakınlaştırma.

İlk kamera konumunu ayarlamak için bir GMSMapViewOptions nesnesi oluşturun ve camera özelliğini GMSCameraPosition olarak ayarlayın. Sonra seçeneklerinizi GMSMapView kolaylıkla uygulayıcısı olabilir.

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];

Varsayılan UIView ilk adımını kullanarak GMSMapView nesnesini de oluşturabilirsiniz. yöntemidir. Bu örnekte, kamera konumu varsayılan konumda başlar ve bunu değiştirebilirsiniz.

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

Konumu ayarlamak için kamera konumunu programlı bir şekilde değiştirebilirsiniz. taşıma, yatırma ve yakınlaştırma. GMSMapView, aşağıdakileri yapabileceğiniz çeşitli yöntemler sunar: Konumu değiştirmek için kullanabileceğiniz bir şey. Genellikle GMSCameraPosition veya GMSCameraUpdate:

  • GMSCameraPosition her kamera konumunu değiştirmek için kullandığınız özellikleri ve yöntemleri içerir parametresi: hedefleme, taşıma, yatırma ve yakınlaştırma.

  • GMSCameraUpdate hedefi, yönü, yatırmayı ve yakınlaştırmayı değiştirmenize olanak tanır ve ayrıca, gelişmiş yakınlaştırmayı ve ortalamayı destekleyen görüntüler ve daha fazlası gibi gözlemlenebilir.

Kamerayı hareket ettirirken "tutturmayı" seçebilirsiniz. yeni kameraya veya hareket animasyonu olmadığı anlamına gelir. Örneğin, kameranın hedef konumunda bir değişiklik yaptığınızda, animasyon önceki konumu yeni konuma taşıyın.

Animasyon, mevcut kamera özellikleri ile yeni kamera özellikleri arasında interpolasyon yapar kamera özellikleriyle değiştirebilirsiniz. Animasyonun süresini, Çekirdek Animasyon.

GMSCameraPosition hareketini kullanın

Kamerayı şununla değiştirmek için: GMSCameraPosition, yeni bir nesne oluşturursunuz veya mevcut bir nesneyi kopyalarsanız GMSMapView nesne. Kamerayı tutturmak için GMSCameraPosition nesnesini kullanın yeni konumu ekleyebilirsiniz.

Aşağıdakiler gibi kamera özelliklerini yapılandırmak için bir GMSCameraPosition nesnesi kullanın: enlem, boylam, yakınlaştırma, konum ve görüntüleme açısı. Daha sonra bu nesneyi GMSMapView için camera özelliğini ayarlayın.

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 şunun yerine animateToCameraPosition: yöntemini kullanın: camera özelliğini ayarlama.

GMSCameraUpdate hareketini kullanın

GMSCameraUpdate kamera konumunu güncellemenize ve tutturma veya animasyon ekleme arasında seçim yapmanıza olanak tanır. bahsedeceğim. GMSCameraUpdate, sağladığı avantaj kolaylık sağlamasıdır. Şunları yapabilirsiniz: GMSCameraUpdate ile aynı görevleri gerçekleştirmek için GMSCameraPosition kullanılır, ancak GMSCameraUpdate, şu işlemleri kolaylaştıran ek yardımcı yöntemler sunar: kamerayı manipüle etme.

Örneğin, geçerli yakınlaştırma seviyesini artırmak üzere GMSCameraPosition tuşunu kullanmak için önce mevcut yakınlaştırma seviyesini belirlemeniz gerekir, ardından Yakınlaştırmayı 1'den büyük bir değere ayarladığınız GMSCameraPosition nesnesi yakınlaştırın.

Alternatif olarak, zoomIn: yöntemiyle bir GMSCameraUpdate nesnesi oluşturun. Daha sonra, GMSCameraUpdate nesnesini GMSMapView animateWithCameraUpdate: yöntemi.

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];
      

Kamerayı yeni konuma tutturmak için GMSMapView moveCamera: yöntemini kullanın .

Sonraki örnekte, kameranın bir hareketini canlandırmak için GMSCameraUpdate kullanılır. bir merkeze koyduk.

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: ve zoomOut:
Geçerli yakınlaştırma seviyesini 1, 0 olarak değiştirin ve aynı olacaktır.
zoomTo:
Yakınlaştırma düzeyini verilen değere değiştirirken diğer tüm değerleri korur aynı değildir.
zoomBy:
Yakınlaştırma seviyesini artırır (veya değer negatifse azaltır) değer:
zoomBy:atPoint:
Değer negatifse belirtilen noktanın uzaklığını korurken yakınlaştırma düzeyini verilen değere göre uzaklaştırarak ekranda konumu.
setTarget:
Koruma işlemini korurken kameranın enlem ve boylamını değiştirir izin verir.
setTarget:zoom:
Kameranın enlem, boylam ve yakınlaştırma ayarlarını değiştirirken korumak için kullanır.
setCamera:
Yeni bir GMSCameraPosition ayarlar.
scrollByX:Y:
Haritayı hareket ettirmek için kameranın enlem ve boylamını değiştirir belirtilen puan sayısına göre. Pozitif x değeri sağa doğru hareket ettirin ve haritanın çıktı. Pozitif y değeri kameranın aşağı hareket etmesine neden olur ve böylece harita yukarı çıkmış gibi görünüyor. Kaydırma, kameranın mevcut durumuna bağlıdır değer. Örneğin, kamera 90 derecelik bir görüş açısına sahipse "doğu" değeri "yukarı"dır.
fitBounds:
Kamerayı, ekranda belirtilen sınırları şurada ortalayacak şekilde dönüştürür: mümkün olan en yüksek yakınlaştırma seviyesine ayarlanır. Bir varsayılan uygular dolguyu 64 puanlık sınırlara göre belirleyebilirsiniz.
fitBounds:withPadding:
Kamerayı, belirtilen sınırları mümkün olan en yüksek zum düzeyinde ayarla. Bu yöntemi, sınırlayıcı kutunun tüm kenarları için nokta cinsinden aynı dolgu.
fitBounds:withEdgeInsets:
Kamerayı, belirtilen sınırları mümkün olan en yüksek zum düzeyinde ayarla. UIEdgeInsets ile, sınırlayıcı kutunun her bir kenarı için dolguyu ayrı ayrı belirtirsiniz.
'nı inceleyin.

Tek bir mülkü değiştirmek için GMSMapView kullanma

GMSMapView kamerayı, başka herhangi bir araç GMSCameraPosition nesne veya GMSCameraUpdate nesne. Bu yöntemler sayesinde animateToLocation: veya animateToZoom: olarak bir değişikliği tek bir kamera özelliği kullanabilirsiniz.

Örneğin, kamerada bir değişiklik canlandırmak için toViewingAngle: yöntemini kullanın yatır.

Swift

mapView.animate(toViewingAngle: 45)
      

Objective-C

[mapView animateToViewingAngle:45];
      

Hedef belirleyin (konum)

Konum, haritanın merkezini belirler. Konumlar enlem ve boylama sahip olur ve programatik olarak CLLocationCoordinate2D, CLLocationCoordinate2DMake ile oluşturuldu.

Konumu değiştirmek için GMSCameraPosition öğesini kullanın. Bu örnekte, harita yeni konuma taşıyın.

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 kullanmanız gerekir. Alternatif olarak, GMSMapView üzerinde animateToLocation: yöntemini kullanın.

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. Kullan yerleşik yöntem (scrollByX:Y:) Yönde kamerayı birleştirdik. Bu örnekte kamerayı kaydırarak 200 100 puan aşağı:

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, pusula yönüdür ve gerçek kuzeyden derece cinsinden ölçülür. sağ üst köşesine dokunun. Örneğin, sıcaklığın 90 derece olduğu açıda harita gösterilir. üst kenarın doğuya doğru döndüğü doğrudur.

Ayarı GMSCameraPosition veya GMSCameraUpdate ile programatik olarak ayarlayın veya GMSMapView animateToBearing: yöntemiyle işlem yapabilirsiniz.

Swift

mapView.animate(toBearing: 0)
      

Objective-C

[mapView animateToBearing:0];
      

Yatırmayı ayarla (görüntüleme açısı)

Görüş açısı, kameranın doğrudan bu çizginin üzerinde bir yay üzerindeki konumudur Dünya'nın merkez konumunu ve yüzeyini açabileceğiniz şekilde, dünyadan itibaren derece cinsinden ölçülen nadir (yön doğrudan kameranın altına doğru bakacak şekilde). Görüntüleme açısını değiştirdiğinizde, harita kamera ile harita konumu arasındaki özelliklerle perspektifte görünür orantılı olarak daha büyük görünebilir ve harita konumunun ötesindeki özellikler ve üç boyutlu bir etki oluşturacak şekilde daha küçüktür.

Görüntüleme açısı 0 (haritada dümdüz bir şekilde aşağı bakacak şekilde) ve maksimum seviyeye kadar indirebilirsiniz. Yakınlaştırma seviyesi 16 veya üstü için maksimum açı 65 derece. 10 veya daha düşük yakınlaştırma seviyesi için maksimum açı 30'dur. derece.

Görüntüleme açısını GMSCameraPosition veya GMSCameraUpdate veya GMSMapView olan animateToViewingAngle: yöntemiyle.

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. Daha geniş yakınlaştırma ekranda daha fazla ayrıntı görebilir, daha düşük yakınlaştırma seviyelerinde çok daha fazlasını görebilir.

Yakınlaştırmayı GMSCameraPosition veya GMSCameraUpdate ile programatik olarak ayarlayın ya da GMSMapView animateToZoom: yöntemiyle.

Swift

mapView.animate(toZoom: 12)
      

Objective-C

[mapView animateToZoom:12];
      

Aşağıdaki örnekte GMSCameraUpdate oluşturmak için zoomIn: yöntemi kullanılmaktadır yakınlaştırma animasyonunu geçerli düzeyden bir düzey içine alacak bir nesne olarak ayarlayın.

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ı, ilgilenilen alanın tamamının en görünür olacağı şekilde hareket ettirmek için kamera görünümünün sınırlarını ayarlayın. Örneğin, kullanıcının geçerli konumuna en çok beş kilometre uzaklıktaki tüm benzin istasyonlarını görüntülemek istiyorsanız ekranda görünecek şekilde kamerayı hareket ettirin:

  1. Almak istediğiniz GMSCoordinateBounds değerini hesaplayın ekranda görünür olması gerekir.
  2. Yeni bir GMSMapView döndürmek için cameraForBounds:insets: yöntemini kullanın GMSCameraPosition.

Bu sınırların ayarlanması, belirtilen GMSCoordinateBounds değerinin tamamen sığmasını sağlar. geçerli haritanın boyutu içinde olması gerekir. Bu yöntemin eğimi ve yönü ayarladığını unutmayın 0 olarak görebilirsiniz.

Aşağıdaki örnekte, şehirlerin 300 m2'lik bir boyuta sığması için kameranın hem Vancouver hem de Calgary aynı görünümde görünüyor.

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 sayfayı kaydırabilir veya kaydırabilir anlamına gelir. Bunun yerine koordinat sistemini haritayı odak noktasının (kamera hedefi) merkez sınırlarına kaydırma ve kaydırma işlemleri yapabilirsiniz.

Örneğin, bir alışveriş merkezi veya havaalanı için perakende uygulamasının kullanıcıların bu sınırlar içinde kaydırma ve kaydırma işlemleri yapmasına olanak tanır.

Kaydırmayı belirli sınırlarla kısıtlamak için şunun cameraTargetBounds özelliğini ayarlayın: GMSMapView öğesini gerekli sınırları tanımlayan bir GMSCoordinateBounds nesnesine bağlayı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 diyagramda, kamera hedefinin görüntü alanından biraz daha geniş bir alanla sınırlandırılır. Kullanıcı kamera hedefinin sınırlı alan içinde kalması koşuluyla kaydırma ve kaydırma hareketlerini kullanabilirsiniz. İlgili içeriği oluşturmak için kullanılan çarpı, kamera hedefini temsil eder:

Şundan daha büyük olan kamera sınırlarını gösteren şema:
      görünüm.

Harita, görüntü alanının gösterilmesine neden olsa bile, her zaman görüntü alanını doldurur. belirlenen sınırların dışında kalan alanları ifade eder. Örneğin, sınırın bir köşesinde kamera hedefi görürseniz köşenin dışındaki alan görüntü alanında görünür ancak kullanıcılar bu alana daha fazla kaydıramaz. İlgili içeriği oluşturmak için kullanılan aşağıdaki şema bu senaryoyu göstermektedir. Haç, kamerayı temsil eder hedef:

Kamera hedefini ekranın sağ alt köşesinde gösteren şema
      sınırları var.

Aşağıdaki şemada, kamera hedefinin çok kısıtlı sınırları var. kullanıcıya haritayı kaydırma veya kaydırma olanağı çok azdır. Çarpım, kamera hedefi:

Şundan küçük kamera sınırlarını gösteren şema:
      görünüm.

Minimum veya maksimum yakınlaştırmayı ayarlayın

kGMSMinZoomLevel ve kGMSMaxZoomLevel global sabitleri minimum veya maksimum yakınlaştırma değerleri kullanabilirsiniz. Varsayılan olarak minZoom ve maxZoom GMSMapView özellikleri bu sabitlere ayarlandı.

Haritada kullanılabilen yakınlaştırma düzeyleri aralığını sınırlandırmak için bir min. ve maks. yakınlaştırma düzeyi. Aşağıdaki kod, yakınlaştırma seviyesini 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 okuyabilir. Bu yaklaşım, değerlerden yalnızca birini kısıtlamada faydalı olur. Aşağıdaki kod yalnızca minimum yakınlaştırma düzeyini değiştirir.

Swift

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

Objective-C

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

Min. ve maksimum yakınlaştırmayı güncelledikten sonra kameranın yakınlaştırma seviyesi değerini yeni aralığın dışında görürseniz, geçerli yakınlaştırma otomatik olarak en yakın geçerli değeri görüntüler. Örneğin, aşağıdaki kodda orijinal yakınlaştırma 4 olarak tanımlanır. Yakınlaştırma aralığı daha sonra 10-15 olarak ayarlandığında, geçerli yakınlaştırma değeri 10 olarak güncellendi.

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];