Skip to content

useTrackAnimation

通过该 hooks 可实现轨迹动画,在轨迹动态播放的同时,视角跟随移动。

ts
import { useTrackAnimation } from 'vue3-baidu-map-gl'

注意

  1. 使用该 hooks 前,请确保 TrackAnimation 插件正确的注册了。
  2. 由于在渲染动画时,数据资源是随着当前方位和坐标的改变而实时加载的,刚开始播放动画时画面可能会卡顿,属于正常现象。
  3. 为了减少加载数据资源的性能损耗,在播放动画时隐藏了地图上的 POI 点。

示例

用法

ts
const { setPath, start, cancel, stop, proceed, status } = useTrackAnimation(map, options)

TIP

该 hooks 依赖于 BMapGL,所以需要在 Map 组件初始化完毕调用 setPath 初始化路径后,方法和数据才可用

参数

参数描述类型默认值
mapMap地图组件ref引用Ref<Map>required
options地图视角动画的配置TrackAnimationOptions-

TrackAnimationOptions

属性描述类型默认值
duration动画持续时常,单位 msnumber10000
delay动画开始延迟number0
overallView是否在动画结束后总览视图缩放(调整地图到能看到整个轨迹的视野),默认开启booleantrue
tilt设置动画中的地图倾斜角度,默认 55 度number55
zoom设置动画中的缩放级别,默认会根据轨迹情况调整到一个合适的级别booleanauto

返回值

返回值描述类型
setPath设置路径动画路径,需要在Map组件initd事件触发后才可调用(path: PathPoint[]) => void
start开始动画,setPath 设置路径后且 statusINITIAL 才可调用() => void
stop暂停动画函数() => void
cancel取消动画函数() => void
proceed继续播放动画函数() => void
status动画状态Ref<AnimationStatus>

PathPoint

ts
type PathPoint = { lng: number lat: number }

AnimationStatus

ts
// PLAYING 播放中
// STOPPING 暂停中
// INITIAL 默认状态
type AnimationStatus = 'PLAYING' | 'STOPPING' | 'INITIAL'

TS 类型定义参考

ts
import { Ref } from 'vue'
export declare type PathPoint = {
  lng: number
  lat: number
}
export declare type UseTrackAnimationOptions = {
  /**
   * 动画持续时常,单位ms
   * @default 10000
   */
  duration?: number
  /**
   * 动画开始延迟
   * @default 0
   */
  delay?: number
  /**
   * 是否在动画结束后总览视图缩放(调整地图到能看到整个轨迹的视野),默认开启
   * @default true
   */
  overallView?: boolean
  /**
   * 设置动画中的地图倾斜角度,默认55度
   * @default 55
   */
  tilt?: number
  /**
   * 设置动画中的缩放级别,默认会根据轨迹情况调整到一个合适的级别
   * @default auto
   */
  zoom?: number
}
declare type AnimationStatus = 'PLAYING' | 'STOPPING' | 'INITIAL'
/**
 * 轨迹动画
 * @param {any} map 地图组件实例返回值
 * @param {TrackAnimationOptions} options 轨迹动画配置
 * @returns { setPath, start, stop}
 */
export declare function useTrackAnimation(
  map: any,
  options: UseTrackAnimationOptions
): {
  /**
   * 设置路径动画路径
   */
  setPath: (path: PathPoint[]) => void
  /**
   * 开始动画
   */
  start: () => void
  /**
   * 暂停动画
   */
  stop: () => void
  /**
   * 取消动画
   */
  cancel: () => void
  /**
   * 继续播放动画
   */
  proceed: () => void
  /**
   * 动画状态
   */
  status: Ref<AnimationStatus>
}

Released under the MIT License.