更新记录

1.0.0(2024-01-03)

首个版本发布。


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × ×

组件功能

基于mapbox地图的轨迹回放。

文档

安装说明

本组件依赖mapbox地图运行,所以需要先安装 mapbox-gl 库,在终端运行以下指令:

npm install mapbox-gl --save

本组件依赖 turf 运行,所以需要先安装 turf 库,在终端运行以下指令:

npm install @turf/turf --save

属性说明

属性名 类型 默认值 说明
list Array null 轨迹数据,下面有详细说明
center Array [116.402722, 39.910296] 地图默认中心点坐标
lngKey String lng 轨迹数据经度字段,用于解耦
latKey String lat 轨迹数据纬度字段,用于解耦
mapKey String - 申请的mapbox地图的accessToken,必传
mapStyle String mapbox://styles/mapbox/streets-v12 mapbox地图样式的URL
@load-data EventHandle - 组件初始化完成后或选中日期时间范围后触发,参数是一个具有开始和结束日期时间的对象:{ start: 'yyyy-MM-dd 00:00:00', end: 'yyyy-MM-dd hh:mm:ss'}

list 数组元素属性说明

list 的每个元素必须是一个对象且有下列属性:

属性名 类型 默认值 说明
lng String, Number - 经度,此属性名称必须与组件属性lngKey的值一致
lat String, Number - 纬度,此属性名称必须与组件属性latKey的值一致

示例代码

<template>
  <view class="track">
    <lk-mapbox-trace
      :list="traceList"
      map-key="申请的mapbox地图的accessToken"
      @load-data="loadTrace"
    ></lk-mapbox-trace>
  </view>
</template>

<script setup>
  import { ref } from 'vue'
  import useRequest from '@/composables/useRequest.js' // 接口请求工具

  /* 历史轨迹 */
  const { request, toast } = useRequest()
  const traceList = ref([])

  const loadTrace = ({start, end} = {}) => request({
    url: '后端接口url',
    data: {
      id: vehId,
      startTime: start,
      endTime: end
    }
  }).then(({data}) => {
    if (!data || !data.length) {
      traceList.value = []
      toast('未查询到轨迹数据')
      return
    }
    const pathList = data.filter((item, index, arr) => {
      const lng = item.lng
      const lat = item.lat
      return lng > 0 && lat > 0 && (!index || (index && (lat !== arr[index - 1].lat || lng !== arr[index - 1].lng))) // 过滤掉无效和重复节点
    })
    traceList.value = pathList
  })
</script>

<style lang="scss">
  page,
  .track {
    height: 100%;
  }
</style>

在线演示

在线演示地址

其他

组件难免有不足之处,欢迎各位老铁们批评指正,有任何问题都可以在评论区中留言。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问