カメラパス アニメーションを追加する

プラットフォームを選択: Android iOS JavaScript

3D 地図にカメラパス アニメーションを追加すると、ユーザーに没入感の高いエクスペリエンスを提供できます。カメラパス アニメーションは、Camera を地図上のポイントに移動したり、ポイントの周囲を移動したり、それらを組み合わせて移動したりできます。移動先のポイントには、高度や altitudeMode を指定することもできます。

アニメーションの Camera を構成するときに、altitudeMode プロパティを設定して、カメラの高度の解釈方法を指定できます。

  • AltitudeMode.absolute: 高度を平均海面からのメートル数として解釈します(指定しない場合のデフォルト値)。
  • AltitudeMode.relativeToGround: 標高を、カメラの中心点における地表からの高さ(メートル単位)として解釈します。
  • AltitudeMode.relativeToMesh: 標高を、カメラの中心点にある最も高い 3D メッシュ サーフェス(建物や地形など)からの高さ(メートル単位)として解釈します。

ジャンプ

次のコードサンプルは、flyCameraTo 修飾子を使用して Camera をアニメーション化し、3D 地図上の特定のポイントに移動する方法を示しています。

Map(mode: .hybrid)
  .flyCameraTo(
    .init(
      center: .init(
        latitude: 47.6210296,
        longitude: -122.3496903,
        altitude: 585
      ),
      heading: 149.0,
      tilt: 77.0,
      roll: 0.0,
      range: 4000,
      altitudeMode: .relativeToGround
    ),
    duration: 5,
    trigger: animate,
    completion: {}
  )

飛び回る

次のコードサンプルは、flyCameraAround 修飾子を使用して Camera をアニメーション化し、3D 地図上の特定のポイントをフライオーバーする方法を示しています。

Map(mode: .hybrid)
  .flyCameraAround(
    .init(
      center: .init(
        latitude: 47.6210296,
        longitude: -122.3496903,
        altitude: 585
      ),
      heading: 149.0,
      tilt: 77.0,
      roll: 0.0,
      range: 3000,
      altitudeMode: .relativeToGround
    ),
    duration: 90,
    repeatCount: 3,
    trigger: flyAround,
    completion: {}
  )