Kamerayı ayarlama

Kamera, kullanıcının haritanın 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şkilendirilen aşağıdaki yöntemlerden birini çağırın:

  • Konumumu takip et (GoogleMap.followMyLocation) — Navigasyon için varsayılan kamera modu. Bu mod, kamerayı cihaza veya araca göre ayarlar. Navigasyon sırasında, kamera otomatik olarak seyahat yönüne bakar. Yüksek ayrıntı ayarı etkinleştirildiğinde (NavigationMapStyle.HIGH_DETAIL) 2-D yapı ana hatları, yakınlaştırma düzeyi 19 veya daha yüksek olduğunda görüntülenir.

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

  • Rota özetini göster (NavigationView.showRouteOverview veya SupportNavigationFragment.showRouteOverview) - Kalan rotanın özetini, rotayı harita görünümüne sığdırmak için gerektiği şekilde kaydırma ve yakınlaştırmayı gösterir. Bu görünüm seçildiğinde Yeniden ortala düğmesi görünür olur.

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

Konumum modunu takip et

En yaygın kamera ayarı, kameranın yolculuk sırasındaki mevcut konumunu gösterecek şekilde cihaza veya araca ayarlanmasıdır. Bu kamera modunda, araba her zaman ekranın üzerindeyken açılı bir perspektifle (CameraPerspective.TILTED) ekranı yukarı bakacak şekilde rotayı görüntüleyebilir veya arabayı kuzeye (CameraPerspective.TOP_DOWN_NORTH_UP) ya da istikametinde (CameraPerspective.TOP_DOWN_HEADING_UP) her zaman ekranın üst kısmında) hareket ettirebilirsiniz.

Aşağıdaki kod parçası TILTED perspektifini kullanı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ü size sağlar. Bu modda, kamerayı belirli bir konuma yerleştirir, kamera görünümünü yönlendirmek için bir yön atar, görüntüleme açısını ayarlamak için eğimi 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 yöntemlerinden 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 genel bakış modunu göster

showRouteOverview kamera ayarı, yolculuğun tamamını gösterir. Birden çok varışlı yolculuklar için bu mod, rotanın gidilmemiş 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 düzeyi 19 veya daha yüksek bir değere ayarlandığında 2D bina dış çizgileri görüntülenir. Gezinme sırasında yakınlaştırma düzeyini bir FollowMyLocationOptions nesnesi kullanarak geçersiz kılabilirsiniz. Bu, kullanıcı hedefine yaklaştığında 2D bina ana hatlarını görüntülemek için yakınlaştırma düzeyini yükseltmenize olanak tanır.

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

  navigationView.setNavigationMapStyle(NavigationMapStyle.HIGH_DETAIL);

Aşağıdaki örnek, navigasyon sırasında kameranın yakınlaştırma düzeyini geçersiz kılar. Yakınlaştırma düzeyi, 2D bina dış çizgilerini görüntülemeye yetecek kadar yüksek olan 15 değerine ayarlanır.

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

Sonraki adım

Haritada hangi yerleşik kullanıcı arayüzü bileşenlerinin görüneceğini belirleyerek kullanıcıların haritanızla etkileşimde bulunma şeklini nasıl özelleştireceğinizi öğrenmek için Navigasyon Kullanıcı Arayüzünü Özelleştirme bölümüne bakın.