設定攝影機控制項

選取平台: Android iOS JavaScript

使用者可以在地圖上使用手勢,控制攝影機的縮放、傾斜、位置和旋轉。您也可以透過程式輔助方式設定攝影機。

3D 攝影機模型示意圖

The Camera Position

地圖檢視是模擬成一部看向空間中特定點的相機。攝影機的位置和方向由經度/緯度/高度座標、航向、傾斜度、範圍和滾動定義。

緯度、經度、高度

設定經度、緯度和高度,即可定義攝影機的初始位置。這些值會共同決定攝影機的位置,而非攝影機指向或置中的位置。

緯度可以介於正負 90 度 (含首尾)。經度的範圍介於正負 180 度 (含首尾)。高度以公尺為單位,表示海拔高度。

只要超出這個範圍,都會調整為範圍內最接近的值。舉例來說,如果將緯度指定為 100,值就會設為 90。

標題

頂角指定地圖的指南針方向,以正北為基準,依順時針方向測量角度。北為 0 度,東為 90 度,南為 180 度,西為 270 度。

傾斜

傾斜角度是指攝影機與垂直軸的角度,以度為單位。傾斜度為 0 度時,攝影機朝向正下方 (天底)。傾斜度為 90 度時,表示攝影機水平指向方向指定的方向。

範圍

範圍定義相機位置與地圖中心之間的距離 (以公尺為單位)。範圍可從零公尺 (非常近) 到六千三百萬公尺,讓您從非常近的距離一直看到真正的全球視角。這能有效控制地圖的「放大」或「縮小」程度。

向左/向右旋轉

旋轉角是指攝影機相對於地平線的角度,以度為單位。這個參數可用來建立效果,例如飛行模擬模式期間的傾斜,甚至是完整的桶滾,讓攝影機繞著檢視軸旋轉。

控制相機

下列程式碼範例示範如何以程式輔助方式控制攝影機。

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)

UI 控制項

除了標準手勢外,Maps 3D SDK for iOS 也提供 UI 控制項,可用於操控攝影機位置。

  • 「縮放控制項」會顯示「+」和「-」按鈕,用於變更地圖的縮放等級。
  • 「移動控制項」會顯示「←」、「→」、「↑」和「↓」按鈕,用於變更地圖中心點。
  • 「旋轉控制項」會顯示「↺」和「↻」,用於變更攝影機的朝向。
  • 「傾斜控制項」會顯示「^」和「⌄」,用於變更攝影機的傾斜角度。
  • 指南針控制項會指出指南針北方的方向,並可將攝影機重設為朝北。

以下程式碼範例說明如何變更 UI 控制項的顯示設定:

swift struct ContentView: View { @State private var showControls = true</p> <p>var body: some View { Map(mode: .hybrid) .mapControls(at: .trailing) { if showControls { CompassControl() ZoomControl() TiltControl() } } } } ```