Browse Source

优化轨迹

master
xh 1 week ago
parent
commit
1e9a1719fb
  1. 10
      web/src/views/HandDevice/Home/components/HistoricalCurve.vue
  2. 3
      web/src/views/HandDevice/Home/components/constants/map.constants.ts
  3. 55
      web/src/views/HandDevice/Home/index.vue

10
web/src/views/HandDevice/Home/components/HistoricalCurve.vue

@ -93,12 +93,10 @@ async function getData(row: MarkerData) {
ElMessage.error('没有数据')
historicalData.value = []
}
historicalData.value = data
.sort((a, b) => a.ts - b.ts)
.map((item) => ({
...item,
timeStr: dayjs(item.ts).format('YYYY-MM-DD HH:mm:ss')
}))
historicalData.value = data.map((item) => ({
...item,
timeStr: dayjs(item.ts).format('YYYY-MM-DD HH:mm:ss')
}))
} catch (error) {
// ElMessage.error(error.message)
} finally {

3
web/src/views/HandDevice/Home/components/constants/map.constants.ts

@ -47,8 +47,7 @@ export const DEFAULT_MARKERS = []
// 地图默认配置
export const MAP_DEFAULTS = {
// tileUrl: 'http://qtbj.icpcdev.site/roadmap/{z}/{x}/{y}.png',
tileUrl:
'https://webrd04.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}',
tileUrl:'https://webrd04.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}',
center: [116.3912757, 39.906217] as [number, number],
zoom: 10,
maxZoom: 18,

55
web/src/views/HandDevice/Home/index.vue

@ -4,8 +4,8 @@
<OpenLayerMap
ref="mapRef"
class="map-container"
:showDrawFences="true"
:showTrajectories="true"
:showDrawFences="false"
:markers="filterMarkers"
:fences="fences"
@time-range-change="timeRangeChange"
@ -159,15 +159,9 @@ const getMarkers = async () => {
return {
...i,
coordinates: [i.longitude || 0, i.latitude || 0] as [number, number],
// data: [],
timeStr: i.time ? dayjs(i.time).format('YYYY-MM-DD HH:mm:ss') : '',
// value: i.value,
// unit: i.unit,
// gasStatus: i.gasStatus, //
// batteryStatus: i.batteryStatus, //
// fenceStatus: i.fenceStatus, //
// onlineStatus: i.onlineStatus, //线
// enableStatus: i.enableStatus, //
statusStr: statusStr, //
statusColor: getStatusColor(statusStr), //
statusLabel: getStatusLabel(statusStr), //
@ -263,35 +257,42 @@ async function showTrajectory(item: MarkerData) {
let before = arr[index - 1]
let after = arr[index + 1]
let before_after_distance = getDistance(
[after.longitude, after.latitude],
[before.longitude, before.latitude]
)
//
if (before_after_distance < 6) {
console.log('过滤小范围移动点位', before_after_distance)
return false
}
let beforeDistance = getDistance(
[before.longitude, before.latitude],
[item.longitude, item.latitude]
)
console.log('beforeDistance', beforeDistance)
if (beforeDistance < 40) {
return true
}
let afterDistance = getDistance(
[after.longitude, after.latitude],
[item.longitude, item.latitude]
)
console.log('afterDistance', afterDistance)
if (afterDistance < 40) {
return true
// 40m,20m
if (beforeDistance > 40 && afterDistance > 40 && before_after_distance < 20) {
console.log(
'过滤掉前和后点位相差小于20m的,且与前、后点位都超过40m的',
beforeDistance,
afterDistance,
before_after_distance
)
return false
}
let before_after_distance = getDistance(
[after.longitude, after.latitude],
[before.longitude, before.latitude]
)
console.log('before_after_distance', before_after_distance)
if (before_after_distance < 20) {
return true
}
// console.log('beforeDistance', afterDistance)
// console.log('', beforeDistance,'',afterDistance,'',before_after_distance)
return false
return true
})
.map((j) => {
return {
@ -373,15 +374,13 @@ onMounted(() => {
getFences()
console.log('定时器,暂时关掉,太烦了')
getDataTimer.value = setInterval(() => {
if (!componentsIsActive.value) {
return
}
getMarkers()
getFences()
}, 5000)
}, 4000)
})
onActivated(() => {

Loading…
Cancel
Save