Kamerayı ayarlama

Kamera, kullanıcının haritaya bakış açısını değiştirmenize olanak tanır. Navigasyon sırasında harita görünümünün davranışını kontrol etmek için kamera modlarını kullanabilirsiniz. Kamera modunu ayarlamak için kamerayla ilişkili aşağıdaki yöntemlerden birini çağırın:

  • Konumumu takip et (GoogleMap.followMyLocation): Navigasyon için varsayılan kamera modu. Bu modda kamera, cihaza veya araca ayarlanır. Navigasyon sırasında kamera otomatik olarak seyahat yönüne bakar. Yüksek ayrıntı ayarı etkinleştirildiğinde (NavigationMapStyle.HIGH_DETAIL), yakınlaştırma seviyesi 19 veya daha yüksek olduğunda 2D bina ana hatları gösterilir.

  • Konuma sabitlendi (GoogleMap.animateCamera ve GoogleMap.moveCamera): — Kamerayı belirli bir konuma sabitler. Bu modu kullanırken kamera konumunu, yön, eğme, yakınlaştırma gibi diğer kamera özellikleriyle birlikte ayarlayabilirsiniz. Bu görünüm seçildiğinde ve Gezgin başlatıldığında Yeniden merkezle düğmesi görünür.

  • Rota özetini göster (NavigationView.showRouteOverview veya SupportNavigationFragment.showRouteOverview): Rotanın kalan kısmına genel bir bakış gösterir. Rotayı harita görünümüne sığdırmak için gerektiğinde kaydırabilir ve yakınlaştırabilirsiniz. Bu görünüm seçildiğinde Yeniden ortala düğmesi görünür.

Yeniden merkezle düğmesini tıkladığınızda kamera followMyLocation moduna ayarlanır.

Konumumu takip et modu

En yaygın kamera ayarı, kameranın cihaza veya araca ayarlanması ve yolculuktaki mevcut konumunu göstermesidir. Bu kamera modunda, aracın her zaman ekranın üst kısmına doğru baktığı açılı bir perspektifle (CameraPerspective.TILTED) rotayı görüntüleyebilir veya aracın kuzeye (CameraPerspective.TOP_DOWN_NORTH_UP) ya da yöne (CameraPerspective.TOP_DOWN_HEADING_UP) her zaman ekranın üst kısmında) doğru gittiğini görebilirsiniz.

Aşağıdaki kod parçasında TILTED perspektifi kullanılmaktadır:

// Set the camera to follow the device (vehicle):
mNavFragment.getMapAsync(googleMap -> googleMap.followMyLocation(CameraPerspective.TILTED))

Konum moduna sabitlendi

Pinned modu, kamera üzerinde en fazla kontrolü sağlar. Bu modda kamerayı belirli bir yere yerleştirir, kamera görüntüsünü yönlendirmek için bir yön belirler, görüntü açısını ayarlamak için kamerayı eğme açısını değiştirir ve kameranın yakınlaştırma düzeyini ayarlarsınız.

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

private static final LatLng SYDNEY = new LatLng(-33.88, 151.21);
private static final LatLng MOUNTAIN_VIEW = new LatLng(37.4, -122.1);

private GoogleMap map;
... // Obtain the map from a SupportNavigationFragment or NavigationView.

// 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(MOUNTAIN_VIEW)      // 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));

Rota özeti modunu gösterme

showRouteOverview kamera ayarı, yolculuğun tamamını gösterir. Birden fazla hedefi olan yolculuklar için bu mod, rotanın kullanılmayan bölümünü gösterir.

// Place the camera to see the remaining route:
mNavFragment.showRouteOverview();

Yüksek ayrıntı ayarı

Yüksek ayrıntı ayarı etkinleştirildiğinde, kameranın yakınlaştırma seviyesi 19 veya daha yüksek bir değere ayarlandığında 2D bina ana hatları gösterilir. FollowMyLocationOptions nesnesi kullanarak gezinme sırasında yakınlaştırma düzeyini geçersiz kılabilirsiniz. Bu sayede, kullanıcı hedefe yaklaştıkça 2D bina ana hatlarını gösterecek kadar yakınlaştırma düzeyini artırabilirsiniz.

Bu örnekte yüksek ayrıntı ayarı etkinleştirilmiştir:

  navigationView.setNavigationMapStyle(NavigationMapStyle.HIGH_DETAIL);

Aşağıdaki örnekte, gezinme sırasında kameranın yakınlaştırma seviyesi geçersiz kılınır. Yakınlaştırma düzeyi 15 olarak ayarlanmıştır. Bu düzey, 2D bina ana hatlarını görüntülemek için yeterlidir.

  googleMap.followMyLocation(
              FollowMyLocationOptions.builder(CameraPerspective.TILTED)
                      .setZoomLevel(15.0f)
                      .build());

Sonraki adım

Yerleşik kullanıcı arayüzü bileşenlerinden hangilerinin haritada görüneceğini belirleyerek kullanıcıların haritanızla etkileşim şeklini nasıl özelleştireceğinizi öğrenmek için Navigasyon kullanıcı arayüzünü özelleştirme başlıklı makaleyi inceleyin.