Kamera kontrollerini yapılandırma

Platform seçin: Android iOS JavaScript

Kullanıcılar, harita üzerinde hareketleri kullanarak kameranın yakınlaştırma, eğme, konum ve dönüşünü kontrol edebilir. Kamerayı programatik olarak da yapılandırabilirsiniz.

3D kamera modelini gösteren diyagram

Kamera Konumu

Harita görünümü, uzayda belirli bir noktaya bakan bir kamera olarak modellenir. Kameranın konumu ve yönü; enlem/boylam/rakım koordinatları, yön, eğim, menzil ve dönüş ile tanımlanır.

Enlem, boylam, rakım

Kameranın ilk konumu; enlem, boylam ve rakım ayarlanarak tanımlanır. Bu değerler, kameranın nereye baktığını veya nereye odaklandığını değil, nerede konumlandırıldığını belirlemek için birleştirilir.

Enlem, -90 ile 90 derece arasında (bu değerler dahil) olabilir. Boylam, -180 ile 180 derece arasında (bu değerler dahil) değişir. Yükseklik, deniz seviyesinden metre cinsinden belirtilir.

Bu aralığın üstündeki veya altındaki değerler, bu aralıktaki en yakın değere sabitlenir. Örneğin, 100 enlem değeri belirtildiğinde değer 90 olarak ayarlanır.

Başlık

Yön, haritanın pusula yönünü belirtir ve gerçek kuzeyden saat yönünde derece cinsinden ölçülür. Kuzey 0 dereceye, Doğu 90 dereceye, Güney 180 dereceye ve Batı 270 dereceye karşılık gelir.

Yatır

Eğim, kameranın dikey eksene göre açısını derece cinsinden belirtir. 0 derecelik eğim, kameranın doğrudan Dünya'ya (nadir) baktığı anlamına gelir. 90 derecelik bir eğim, kameranın yön tarafından belirtilen yönde yatay olarak baktığı anlamına gelir.

Aralık

Menzil, kameranın kendi konumu ile haritanın merkezi arasındaki mesafeyi metre cinsinden tanımlar. Aralık sıfır metreden (çok yakın) altmış üç milyon metreye kadar değişebilir. Bu sayede çok yakından bakabilir veya küresel bir perspektif elde edebilirsiniz. Bu, haritanın ne kadar "yakınlaştırılmış" veya "uzaklaştırılmış" görüneceğini etkili bir şekilde kontrol eder.

Döndür

Yana yatma, kameranın ufka göre açısını derece cinsinden ayarlar. Bu parametre, uçuş simülasyonları sırasında yatış gibi efektler oluşturmak, hatta kamerayı görüntüleme ekseni etrafında döndürerek tam bir tono hareketi oluşturmak için kullanılabilir.

Kamerayı kontrol etme

Aşağıdaki kod örneğinde, kameranın programatik olarak nasıl kontrol edileceği gösterilmektedir.

Swift


public static var sanFrancisco: Camera = .init(
  center: .init(
    latitude: 37.7845812,
    longitude: -122.3660241,
    altitude: 585),
  fieldOfView: .init(degrees: 100),
  heading: 288.0,
  tilt: 75.0,
  roll: 0.0,
  range: 100)

Kullanıcı arayüzü kontrolleri

iOS için Haritalar 3D SDK'sı, standart hareketlerin yanı sıra kameranın konumunu değiştirmek için kullanıcı arayüzü kontrolleri de sağlar.

  • Yakınlaştırma kontrolü, haritanın yakınlaştırma seviyesini değiştirmek için "+" ve "-" düğmelerini gösterir.
  • Taşıma kontrolü, haritanın merkezini değiştirmek için "←", "→", "↑" ve "↓" düğmelerini gösterir.
  • Döndürme kontrolleri, kameranın yönünü değiştirmek için "↺" ve "↻" simgelerini gösterir.
  • Eğme kontrolü, kameranın eğimini değiştirmek için "^" ve "⌄" simgelerini gösterir.
  • Pusula kontrolü, pusulanın kuzey yönünü gösterir ve kameranın kuzey yönüne sıfırlanmasına olanak tanır.

Aşağıdaki kod örneğinde, kullanıcı arayüzü kontrollerinin görünürlüğünün nasıl değiştirileceği gösterilmektedir:

Swift


struct ContentView: View {
  @State private var showControls = true

  var body: some View {
    Map(mode: .hybrid)
      .mapControls(at: .trailing) {
        if showControls {
          CompassControl()
          ZoomControl()
          TiltControl()
        }
      }
  }
}