更新记录
1.0.0(2024-01-03)
下载此版本
首个版本发布。
平台兼容性
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>
在线演示
在线演示地址
其他
组件难免有不足之处,欢迎各位老铁们批评指正,有任何问题都可以在评论区中留言。