ユーザーは、地図上でジェスチャーを使用して、カメラのズーム、チルト、位置、回転を制御できます。カメラをプログラムで設定することもできます。

カメラの位置
地図ビューは、空間内の特定のポイントを見ているカメラとしてモデル化されています。カメラの位置と向きは、緯度、経度、高度の座標、方位、傾き、範囲、ロールで定義されます。
緯度、経度、高度
カメラの初期位置は、緯度、経度、高度を設定することで定義されます。これらの値の組み合わせによって、カメラが向いている方向や中心ではなく、カメラが配置されている場所が決まります。
緯度は、-90 ~ 90 度の範囲で指定できます。経度は -180 ~ 180 度の範囲になります。高度は海抜(メートル単位)で指定します。
この範囲以外の値は、この範囲内の最も近い値に設定されます。たとえば、緯度 100 を指定した場合は、値が 90 に設定されます。
見出し
heading は、地図のコンパス方位を真北からの時計回り方向への度数で指定します。北は 0 度、東は 90 度、南は 180 度、西は 270 度に対応します。
傾斜
tilt は、垂直軸に対するカメラの角度を度数で指定します。傾斜が 0 度の場合は、カメラが地球の真下(天底)を向いていることを意味します。傾きが 90 度の場合は、カメラが heading で指定された方向に水平に向けられていることを意味します。
範囲
range は、カメラ自体の位置と地図の中心との距離をメートル単位で定義します。範囲は 0 メートル(非常に近い)から 6, 300 万メートルまであり、非常に近い視点から真にグローバルな視点まで表示できます。これにより、地図の「ズームイン」または「ズームアウト」の表示方法を効果的に制御できます。
ロール
roll は、水平線に対するカメラの角度を度数で設定します。このパラメータを使用すると、フライト シミュレーション中のバンキングや、バレルロール全体などの効果を作成し、カメラを視線軸を中心に回転させることができます。
カメラの制御
次のコードサンプルは、カメラをプログラムで制御する方法を示しています。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() } } } } ```