用户可以使用地图上的手势来控制镜头的缩放、倾斜、位置和旋转。您还可以通过编程方式配置相机。

镜头位置
地图视图被建模成一个看向空间中特定点的镜头。镜头的位置和方向由纬度/经度/海拔坐标、航向、倾斜度、范围和滚动定义。
纬度、经度、海拔
镜头的初始位置通过设置纬度、经度和海拔来定义。这些值共同决定了镜头的位置,而不是镜头的指向或中心。
纬度可以介于 -90 度(含)和 90 度(含)之间。经度范围为 -180 度(含)到 180 度(含)。海拔高度以海拔米数指定。
不在此范围内的值会被调整为此范围内最接近的值。例如,如果将纬度指定为 100,系统会将该值设为 90。
标题
heading 指定地图的罗盘方向,以与正北方所呈顺时针角度(以度为单位)表示。北方对应 0 度,东方对应 90 度,南方对应 180 度,西方对应 270 度。
倾斜
倾斜度指定了镜头相对于垂直轴的角度,以度为单位。倾斜度为 0 度表示镜头竖直朝下,指向地球(天底)。倾斜度为 90 度表示镜头水平指向朝向指定的方向。
Range
范围是指相机自身位置与地图中心之间的距离(以米为单位)。范围可以从 0 米(非常近)到 6300 万米,从而可以从非常近的视角一直到真正的全球视角。这可以有效控制地图的“放大”或“缩小”程度。
掷
滚转角用于设置镜头相对于地平线的角度,以度为单位。此参数可用于在飞行模拟器中创建倾斜效果,甚至可以创建完整的横滚效果,即让相机围绕其视角轴旋转。
控制相机
以下代码示例演示了如何以编程方式控制摄像头。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)
界面控件
除了标准手势之外,iOS 版 Maps 3D SDK 还提供用于操控相机位置的界面控件。
- 缩放控件:可显示“+”和“-”按钮,用于更改地图的缩放级别。
- 移动控件:可显示“←”“→”“↑”和“↓”按钮,用于更改地图的中心。
- 旋转控件:显示“↺”和“↻”,用于更改镜头的朝向。
- 倾斜控件:可显示“^”和“⌄”,用于更改镜头的倾斜度。
- 罗盘控件指示罗盘北方,并允许将镜头重置为朝向北方。
以下代码示例展示了如何更改界面控件的可见性:
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() } } } } ```