Kamerayı ayarlama

Kamera, kullanıcının haritadaki 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 mod, kamerayı cihaza veya araca ayarlar. 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 düzeyi 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, taşıma, yatırma, 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 ortala düğmesi görünür.

  • Rota özetini göster (NavigationView.showRouteOverview veya SupportNavigationFragment.showRouteOverview) — Rotayı harita görünümüne sığdırmak için gereken şekilde kaydırma ve yakınlaştırma yaparak kalan rotaya dair genel bir bakış sunar. Bu görünüm seçildiğinde Yeniden ortala düğmesi görünür.

Yeniden ortala düğmesi tıklandığında kamera followMyLocation moduna ayarlanır.

Konum modumu takip et

En yaygın kamera ayarı, kameranın yolculuktaki mevcut konumunu göstererek cihaza veya araca göre ayarlanmasıdır. Bu kamera modunda, rotayı her zaman ekranın üstündeyken (CameraPerspective.TILTED) veya belirli bir açıda (CameraPerspective.TILTED) ya da kuzey (CameraPerspective.TOP_DOWN_NORTH_UP) veya istikamet yönünde (CameraPerspective.TOP_DOWN_HEADING_UP) her zaman ekranın üst kısmında) hareket eden arabayı görebilirsiniz.

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ü sağlar. Bu modda, kamerayı belirli bir konuma yerleştirir, kamera görüntüsünün yönünü belirlemek için bir yatak atar, görüntüleme açısını ayarlamak üzere yatırmayı değiştirir ve kameranın yakınlaştırma seviyesini ayarlarsınız.

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

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

Rotaya genel bakış modunu göster

showRouteOverview kamera ayarı yolculuğun tamamını gösterir. Birden fazla hedefe sahip yolculuklarda bu mod, rotanın seyahat edilmeyen 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 dış çizgileri gösterilir. Gezinme sırasında, FollowMyLocationOptions nesnesi kullanarak yakınlaştırma düzeyini geçersiz kılabilirsiniz. Bu şekilde, kullanıcı hedefine yaklaştığında 2D bina dış çizgilerini görüntülemek için yakınlaştırma seviyesini yükseltebilirsiniz.

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

  navigationView.setNavigationMapStyle(NavigationMapStyle.HIGH_DETAIL);

Aşağıdaki örnek, gezinme sırasında kameranın yakınlaştırma seviyesini geçersiz kılar. Yakınlaştırma düzeyi, 2D bina ana hatlarını görüntülemek için yeterince yüksek olan 15 değerine ayarlanmıştı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 Gezinme Kullanıcı Arayüzünü Özelleştirme konusuna bakın.