Kamera ve görünüm

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Platform seçin: Android iOS JavaScript

Android için Haritalar SDK'sındaki haritalar, kolay hareketlerle döndürülebilir ve döndürülebilir. Böylece, kullanıcılar haritayı kendileri için anlamlı bir yönde ayarlayabilir. Tüm yakınlaştırma düzeylerinde, haritayı kaydırabilir veya vektör tabanlı harita karolarının daha küçük ayak izi sayesinde çok az gecikmeyle perspektifini değiştirebilirsiniz.

Kod örnekleri

GitHub'daki ApiDemos deposu, kamera özelliklerini gösteren bir örnek içerir:

Giriş

Web'deki Google Haritalar gibi, Android için Haritalar SDK'sı da Mercator projeksiyonunu kullanarak cihazınızın yüzeyindeki (düz bir düzlem) dünyanın yüzeyini (küre) temsil eder. Doğu ve batı yönünde harita, dünya kendi kendini sorunsuz bir şekilde sarmaladığı için sonsuza kadar tekrarlanır. Kuzey ve güney yönünde harita yaklaşık 85 derece kuzey ve 85 derece güneyle sınırlıdır.

Not: Merkatör projeksiyonu, uzun olarak sonlu bir genişliğe ancak buna göre sonsuz bir yüksekliğe sahiptir. Sonuçta ortaya çıkan harita şekli karesini oluşturmak için Mercator projeksiyonunu yaklaşık +/- 85 derece kullanan temel harita görüntüleri "keser" ve bu sayede karo seçimi için daha kolay bir mantık sunulur.

Android için Haritalar SDK'sı, haritanın kamerasını değiştirerek kullanıcının haritadaki bakış açısını değiştirmenize olanak tanır.

Kamerada yapılan değişiklikler; işaretçilerde, yer paylaşımlarında veya eklediğiniz diğer grafiklerde herhangi bir değişikliğe yol açmaz. Ancak eklemelerinizi yeni görünüme daha uygun olacak şekilde değiştirmek isteyebilirsiniz.

Haritadaki kullanıcı hareketlerini dinleyebildiğinizden, kullanıcı isteklerine göre haritayı değiştirebilirsiniz. Örneğin, geri çağırma yöntemi OnMapClickListener.onMapClick() haritaya tek bir dokunuşla yanıt verir. Yöntem, dokunma konumunun enlemini ve boylamını aldığından bu noktaya kaydırma veya yakınlaştırma yaparak yanıt verebilirsiniz. Benzer yöntemler, işaretçi üzerindeki baloncuklara dokunma veya bir işaretleyicideki sürükleme hareketine yanıt verme için de kullanılabilir.

Ayrıca kamera hareketlerini dinleyebilirsiniz. Böylece kamera hareket etmeye başladığında, hareket ederken veya hareket etmeyi durdurduğunda uygulamanız bildirim alır. Ayrıntılar için kamerayı değiştirme etkinlikleri rehberini inceleyin.

Kamera konumu

Harita görünümü, düz bir uçağa bakan bir kamera olarak modellenmiştir. Kameranın konumu (dolayısıyla haritanın oluşturulması) şu özellikler tarafından belirlenir: hedef (enlem/boylam konumu), konum, eğim ve yakınlaştırma.

Kamera özellikleri şeması

Hedef (yer)

Kamera hedefi, enlem ve boylam koordinatları olarak belirtilen merkezi harita konumudur.

Enlem, -85 ile 85 derece arasında (ikisi de dahil) olabilir. Bu aralığın üstündeki veya altındaki değerler, bu aralık içindeki en yakın değere sabitlenir. Örneğin, 100 için bir enlem değeri 85 olarak ayarlanır. Boylam, -180 ile 180 derece arasında değişir (bu değerler dahil). Bu aralığın üstündeki veya altındaki değerler, aralığın (-180, 180) kapsamına girecek şekilde sarmalanır. Örneğin, 480, 840 ve 1200 öğelerinin tümü 120 dereceye sarmalanır.

Yatak (yön)

Kamera konumu, gerçek kuzeyden dereceye göre ölçülen ve haritanın üst kenarına karşılık gelen pusula yönünü belirtir. Haritanın ortasından haritanın üst kenarına doğru bir dikey çizgi çizerseniz, rulman, kameranın gerçek kuzeye göre başlığına (derece cinsinden) karşılık gelir.

0 konumu, haritanın üst tarafının doğru kuzeyi işaret ettiği anlamına gelir. Rulman değeri 90, doğudaki harita noktalarının üst kısmı (pusulada 90 derece) anlamına gelir. Değer 180, güneydeki harita noktalarının üst kısmı anlamına gelir.

Maps API bir haritanın konumunu değiştirmenize olanak verir. Örneğin, sıklıkla araba kullanan bir kişi, yol tarifini seyahat yönüyle uyumlu hale getirmek için bir yol haritasını çevirir. Harita kullananlar ve pusulalar ise genellikle haritayı, dikey bir çizgi kuzeye işaret edecek şekilde yönlendirir.

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

Yatırma, kameranın kavşağındaki konumunu doğrudan haritanın merkez konumunun üzerinde tanımlar. Ölçüm için nadir değeri (kameranın hemen altındaki yön) kullanılır. 0 değeri, kameranın düz bir yere baktığını gösterir. 0'dan büyük değerler, belirtilen derece sayısına göre ufuğa doğru yerleştirilmiş bir kameraya karşılık gelir. Görüntüleme açısını değiştirdiğinizde, harita, uzak özellikler daha küçük, yakındaki özellikler daha büyük görünen bir bakış açısıyla görüntülenir. Aşağıdaki resimler bunu göstermektedir.

Aşağıdaki resimlerde görüntüleme açısı 0 derecedir. İlk resimde bunun bir şeması gösterilmektedir. 1 konumu kamera konumu, 2 konumu ise mevcut harita konumudur. Oluşturulan harita altında gösterilir.

0 derecelik görüntüleme açısında 18 yakınlaştırma düzeyinde konumlandırılmış bir kameraya sahip 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 doğrudan konumunu 0 derece açıyla gösteren, varsayılan konumunu gösteren şema.
Kameranın varsayılan görüntüleme açısı.

Aşağıdaki resimlerde görüş açısı 45 derecedir. Kameranın, yay boyunca düz (yukarı) ve zemin (90 derece) arasında yarıya indiğini ve 3 konuma geldiğini unutmayın. Kamera hâlâ haritanın odak noktasını işaret ediyor, ancak çizginin 4. konumunda temsil ettiği alan artık görünür durumda.

45 derece görüntüleme açısında ve 18 yakınlaştırma düzeyinde konumlanmış bir kameraya sahip haritanın ekran görüntüsü.
45 derecelik görüntüleme açısıyla gösterilen harita.
Kameranın görüş açısının 45 dereceye, yakınlaştırma düzeyinin ise 18 dereceye ayarlanmasını gösteren şema.
45 derecelik kamera görüş açısı.

Bu ekran görüntüsündeki harita, orijinal haritadakiyle aynı noktanın merkezinde yer alıyor ancak haritanın üst kısmında daha fazla özellik görünüyor. Açı 45 dereceden fazla arttıkça, kamera ile harita konumu arasındaki özellikler orantılı olarak daha büyük görünür, harita konumunun ötesindeki özellikler ise orantılı olarak daha küçük görünür ve üç boyutlu bir etki sağlar.

Tarih aralığını

Kameranın yakınlaştırma düzeyi haritanın ölçeğini belirler. Geniş yakınlaştırma seviyelerinde ekranda daha fazla ayrıntı görünürken, küçük yakınlaştırma düzeylerinde dünyanın daha büyük bir kısmı görülebilir. Yakınlaştırma düzeyi 0'da, haritanın ölçeği tüm dünyanın yaklaşık 256 dp genişliğe sahip olacağı (yoğunluktan bağımsız pikseller) olur.

Yakınlaştırma düzeyini 1 artırmak ekranın dünya genişliğini iki katına çıkarır. Dolayısıyla, yakınlaştırma düzeyinde N, dünyanın genişliği yaklaşık 256 * 2N dp'dir. Örneğin, yakınlaştırma düzeyinde 2, tüm dünya yaklaşık 1024 dp genişliktedir.

Yakınlaştırma düzeyi tam sayı olmamalıdır. Haritanın izin verdiği yakınlaştırma düzeyleri, hedef, harita türü ve ekran boyutu gibi çeşitli faktörlere bağlıdır. Aralık dışındaki tüm sayılar, bir sonraki en yakın geçerli değere dönüştürülür. Bu değer, minimum yakınlaştırma veya maksimum yakınlaştırma düzeyi olabilir. 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: Kara parçası/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:
Haritanın 5 yakınlaştırma düzeyinde ekran görüntüsü
5. yakınlaştırma düzeyinde bir harita.
15 yakınlaştırma düzeyinde haritanın ekran görüntüsü
Yakınlaştırma düzeyi 15'teki harita.
20. seviyedeki bir haritanın ekran görüntüsü
20. yakınlaştırma düzeyinde bir harita.

Kamerayı hareket ettirme

Maps API, dünyanın hangi kısmının haritada görülebileceğini değiştirmenize olanak tanır. Bunu, kameranın konumunu değiştirmek yerine kameranın konumunu değiştirerek yapabilirsiniz.

Kamerayı değiştirdiğinizde ortaya çıkan kamera hareketini canlandırabilirsiniz. Animasyon, mevcut kamera özellikleri ile yeni kamera özellikleri arasında kesişiyor. Animasyonun süresini de kontrol edebilirsiniz.

Kameranın konumunu değiştirmek için CameraUpdate kullanarak kamerayı nereye taşımak istediğinizi belirtmeniz gerekir. Maps API sayesinde CameraUpdateFactory kullanarak birçok farklı CameraUpdate türü oluşturabilirsiniz. Aşağıdaki seçenekler kullanılabilir:

Yakınlaştırma düzeyini değiştirme ve minimum/maksimum yakınlaştırmayı ayarlama

CameraUpdateFactory.zoomIn() ve CameraUpdateFactory.zoomOut() size yakınlaştırma düzeyini 1, 0 değiştirirken diğer tüm özellikleri aynı tutan CameraUpdate değerini verir.

CameraUpdateFactory.zoomTo(float), yakınlaştırma düzeyini belirtilen değere çeviren ve diğer tüm özellikleri aynı tutan bir CameraUpdate sunar.

CameraUpdateFactory.zoomBy(float) ve CameraUpdateFactory.zoomBy(float, Point) size yakınlaştırma düzeyini belirtilen değerle artıran (veya değer negatifse azalan) bir CameraUpdate verir. İkincisi, ekranda belirtilen noktayı aynı yerde (enlem/boylam) kalacak şekilde düzeltir ve bunu yapabilmek için kameranın konumunu değiştirebilir.

Tercih ettiğiniz bir minimum ve/veya maksimum yakınlaştırma düzeyini ayarlamak yararlı olabilir. Örneğin, uygulamanızda bir önemli noktanın etrafında tanımlı bir alan gösteriliyorsa veya sınırlı bir yakınlaştırma düzeyi grubuna sahip özel bir karo yer alıyorsa bu, kullanıcının deneyimini kontrol etmek için yararlıdır.

Java


private GoogleMap map;
    map.setMinZoomPreference(6.0f);
    map.setMaxZoomPreference(14.0f);

      

Kotlin


private lateinit var map: GoogleMap

    map.setMinZoomPreference(6.0f)
    map.setMaxZoomPreference(14.0f)

      

API'nin, kullanıcıların çok düşük veya çok yüksek yakınlaştırma yapmasına izin vermemesini önleyebilecek teknik hususlar olduğunu unutmayın. Örneğin, uydu veya arazinin haritası, esas harita karolarından daha düşük olabilir.

Kamera konumunu değiştirme

Konum değişiklikleri için sık kullanılan iki yöntem vardır. CameraUpdateFactory.newLatLng(LatLng) size, kameranın enlem ve boylamını değiştiren bir CameraUpdate verir ve diğer tüm özellikleri korur. CameraUpdateFactory.newLatLngZoom(LatLng, float), diğer tüm özellikleri korurken kameranın enlem, boylam ve yakınlaştırmasını değiştiren bir CameraUpdate sağlar.

Kamera konumunu değiştirme konusunda tam esneklik için CameraUpdateFactory.newCameraPosition(CameraPosition) aracını kullanarak kamerayı belirli bir konuma taşıyan bir CameraUpdate elde edebilirsiniz. CameraPosition, doğrudan new CameraPosition() aracılığıyla veya new CameraPosition.Builder() aracılığıyla bir CameraPosition.Builder ile elde edilebilir.

Kaydırma (kaydırma)

CameraUpdateFactory.scrollBy(float, float) size, kameranın enlem ve boylamını, haritanın belirtilen sayıda piksel hareket edecek şekilde değiştireceği bir CameraUpdate verir. Pozitif x değeri, kameranın sağa taşınmasını sağlar. Böylece harita sola kaydırılmış gibi görünür. Pozitif y değeri, kameranın aşağı taşınmasına neden olur. Böylece harita yukarı kaydırılmış gibi görünür. Tersine x değerleri ise kameranın sola gitmesine neden olur. Böylece harita sağa doğru hareket etmiş, negatif y değerleri ise kameranın yukarı çıkmasına neden olur. Kaydırma, kameranın mevcut yönüne göre yapılır. Örneğin, kamera 90 derece rulmana sahipse doğu "yukarı"dır.

Sınır belirleme

Haritanın sınırlarını ayarlama

Bazen kameranın, tüm ilgi alanının mümkün olan en yüksek yakınlaştırma düzeyinde görünür olacağı şekilde taşınması yararlı olur. Örneğin, kullanıcının bulunduğu konumdan en fazla beş kilometre uzaklıktaki benzin istasyonlarının tümünü görüntülüyorsanız kamerayı, kameraların tümünü ekranda görülebilecek şekilde taşımak isteyebilirsiniz. Bunu yapmak için önce ekranda görünür olmasını istediğiniz LatLngBounds değerini hesaplayın. Daha sonra, belirtilen LatLngBounds öğesini tam olarak haritaya sığdırmak için kamera konumunu değiştiren bir CameraUpdate elde etmek amacıyla, belirtilen dolguyu (piksel cinsinden) dikkate alarak CameraUpdateFactory.newLatLngBounds(LatLngBounds bounds, int padding) kullanabilirsiniz. Döndürülen CameraUpdate, belirtilen sınırlar ve haritanın kenarı arasındaki boşluk (piksel olarak) en az belirtilen dolgu kadar olmalıdır. Haritayı yatırmanın ve yatırmanın 0 olacağını unutmayın.

Java


LatLngBounds australiaBounds = new LatLngBounds(
    new LatLng(-44, 113), // SW bounds
    new LatLng(-10, 154)  // NE bounds
);
map.moveCamera(CameraUpdateFactory.newLatLngBounds(australiaBounds, 0));

      

Kotlin


val australiaBounds = LatLngBounds(
    LatLng((-44.0), 113.0),  // SW bounds
    LatLng((-10.0), 154.0) // NE bounds
)
map.moveCamera(CameraUpdateFactory.newLatLngBounds(australiaBounds, 0))

      

Haritayı bir alan içinde ortalama

Bazı durumlarda, kameranızı aşırı kenarlık eklemek yerine, bir sınır içinde ortalamak isteyebilirsiniz. Örneğin, kesintisiz bir yakınlaştırma elde ederken kamerayı bir ülkeye ortalamak için kullanılır. Bu durumda, bir LatLngBounds oluşturup LatLngBounds ile CameraUpdateFactory.newLatLngZoom(LatLng latLng, float zoom) kullanarak benzer bir yöntem kullanabilirsiniz.getCenter() yöntemi. getCenter() yöntemi, LatLngBounds coğrafi konumunu döndürür.

Java


LatLngBounds australiaBounds = new LatLngBounds(
    new LatLng(-44, 113), // SW bounds
    new LatLng(-10, 154)  // NE bounds
);
map.moveCamera(CameraUpdateFactory.newLatLngZoom(australiaBounds.getCenter(), 10));

      

Kotlin


val australiaBounds = LatLngBounds(
    LatLng((-44.0), 113.0),  // SW bounds
    LatLng((-10.0), 154.0) // NE bounds
)
map.moveCamera(CameraUpdateFactory.newLatLngZoom(australiaBounds.center, 10f))

      

Yöntemin aşırı yüklenmesi newLatLngBounds(boundary, width, height, padding), dikdörtgenin piksel cinsinden genişliğini ve yüksekliğini belirtmenize olanak tanır. Burada amaç, bu boyutların haritanın boyutlarına karşılık gelmesidir. Dikdörtgenin merkezi, harita görünümüyle aynı olacak şekilde konumlandırılır (bu şekilde, belirtilen boyutlar harita görünümüyle aynıysa dikdörtgen, harita görünümüyle çakışır). Döndürülen CameraUpdate, kamerayı hareket ettirerek belirtilen LatLngBounds dikdörtgenin içinde, mümkün olan en büyük yakınlaştırma düzeyinde ekranı merkeze alır ve gereken dolguyu dikkate alır.

Not: Yalnızca, harita düzeninden sonra kamerayı hareket ettirmek için kullanılacak CameraUpdate değeri oluşturmak için newLatLngBounds(boundary, padding) adlı basit yöntemi kullanın. Düzen sırasında API, haritanın sınırlayıcı kutuyu doğru şekilde yansıtması için gereken görüntüleme sınırlarını hesaplar. Buna karşılık, daha karmaşık yöntem olan newLatLngBounds(boundary, width, height, padding) tarafından döndürülen CameraUpdate değerini istediğiniz zaman, hatta haritanın düzeninden önce bile kullanabilirsiniz. Bunun nedeni, API'nın görüntüleme sınırlarının, ilettiğiniz bağımsız değişkenlerden hesaplanmasıdır.

Kullanıcının kaydırma işlemini belirli bir alanla kısıtlama

Yukarıdaki senaryolarda, haritanın sınırlarını ayarlarsınız, ancak kullanıcı bu sınırların dışına kaydırabilir veya yatay kaydırma yapabilir. Bunun yerine, haritanın odak noktasının (kamera hedefi) enlem/boylam merkez sınırlarını sınırlandırarak kullanıcıların yalnızca bu sınırlar içinde kaydırma ve kaydırma yapmasını sağlayabilirsiniz. Örneğin, bir alışveriş merkezine veya havaalanına ait bir perakende uygulaması, haritayı belirli sınırlarla sınırlamak istese de kullanıcılar bu sınırlar içinde kaydırma ve kaydırma yapabilir.

Java


// Create a LatLngBounds that includes the city of Adelaide in Australia.
LatLngBounds adelaideBounds = new LatLngBounds(
    new LatLng(-35.0, 138.58), // SW bounds
    new LatLng(-34.9, 138.61)  // NE bounds
);

// Constrain the camera target to the Adelaide bounds.
map.setLatLngBoundsForCameraTarget(adelaideBounds);

      

Kotlin


// Create a LatLngBounds that includes the city of Adelaide in Australia.
val adelaideBounds = LatLngBounds(
    LatLng(-35.0, 138.58),  // SW bounds
    LatLng(-34.9, 138.61) // NE bounds
)

// Constrain the camera target to the Adelaide bounds.
map.setLatLngBoundsForCameraTarget(adelaideBounds)

      

Aşağıdaki şemada, kamera hedefinin görüntü alanından biraz daha büyük bir alanla kısıtlanmasıyla ilgili bir senaryo gösterilmektedir. Kamera hedefinin sınırlı alan içinde kalması şartıyla kullanıcı, ekranı kaydırıp kaydırabilir. Çapraz çizgi, kamera hedefini temsil eder:

Görüntü alanından daha büyük bir LatLngBounds kamerası gösteren şema.

Harita, görüntü alanının tanımlanan sınırların dışında alanları göstermesine neden olsa 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 bu alana daha fazla kaydıramaz. Aşağıdaki şemada bu senaryo gösterilmiştir. Haç, kamera hedefini temsil eder:

Kamera LatLngBounds'un sağ alt köşesinde konumlanan kamera hedefini gösteren şema.

Aşağıdaki şemada, kamera hedefinin sınırları sınırlıdır. Bu, kullanıcıya haritayı kaydırmak veya kaydırmak için çok az fırsat sunar. Haç, kamera hedefini temsil eder:

Görüntü alanından daha küçük bir kamera olan LatLngBounds'u gösteren şema.

Kamera görünümü güncelleniyor

Haritaya CameraUpdate uygulamak için kamerayı anında hareket ettirebilir veya Sorunsuz bir şekilde animasyon uygulayabilirsiniz. CameraUpdate hizmetini kullanarak kamerayı anında hareket ettirmek için GoogleMap.moveCamera(CameraUpdate) numaralı telefonu arayabilirsiniz.

Değişikliği animasyonlayarak, özellikle kısa hamleler için kullanıcı deneyimini daha keyifli hale getirebilirsiniz. Bunun için GoogleMap.moveCamera numaralı telefonu aramak yerine GoogleMap.animateCamera numaralı telefonu arayın. Harita yeni özelliklere sorunsuz bir şekilde taşınacak. Bu yöntemin en ayrıntılı biçimi olan GoogleMap.animateCamera(cameraUpdate, duration, callback) üç bağımsız değişken sunar:

cameraUpdate
Kamerayı nereye hareket ettireceğinizi açıklayan CameraUpdate.
callback
GoogleMap.CancellableCallback etiketini uygulayan bir nesne. Görevleri işlemeye ilişkin bu genelleştirilmiş arayüz, "onCancel()" ve "onFinished()" adlı iki yöntemi tanımlar. Animasyon için yöntemler, şu durumlarda çağrılır:
onFinish()
Animasyon, kesintisiz olarak tamamlanırsa çağrılır.
onCancel()

Animasyon, stopAnimation() çağırılarak veya yeni bir kamera hareketi başlatılarak kesintiye uğrarsa çağrılır.

Bu durum, GoogleMap.stopAnimation() numarasını aradığınızda da ortaya çıkabilir.

duration
int olarak animasyonun istenen milisaniye cinsinden süresi.

Aşağıdaki kod snippet'leri, kamerayı hareket ettirmenin yaygın yollarından bazılarını gösterir.

Java


LatLng sydney = new LatLng(-33.88,151.21);
LatLng mountainView = new LatLng(37.4, -122.1);

// Move the camera instantly to Sydney with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 15));

// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomIn());

// Zoom out to zoom level 10, animating with a duration of 2 seconds.
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);

// Construct a CameraPosition focusing on Mountain View and animate the camera to that position.
CameraPosition cameraPosition = new CameraPosition.Builder()
    .target(mountainView )      // Sets the center of the map to Mountain View
    .zoom(17)                   // Sets the zoom
    .bearing(90)                // Sets the orientation of the camera to east
    .tilt(30)                   // Sets the tilt of the camera to 30 degrees
    .build();                   // Creates a CameraPosition from the builder
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

      

Kotlin


val sydney = LatLng(-33.88, 151.21)
val mountainView = LatLng(37.4, -122.1)

// Move the camera instantly to Sydney with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 15f))

// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomIn())

// Zoom out to zoom level 10, animating with a duration of 2 seconds.
map.animateCamera(CameraUpdateFactory.zoomTo(10f), 2000, null)

// Construct a CameraPosition focusing on Mountain View and animate the camera to that position.
val cameraPosition = CameraPosition.Builder()
    .target(mountainView) // Sets the center of the map to Mountain View
    .zoom(17f)            // Sets the zoom
    .bearing(90f)         // Sets the orientation of the camera to east
    .tilt(30f)            // Sets the tilt of the camera to 30 degrees
    .build()              // Creates a CameraPosition from the builder
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition))