|
|
|
@ -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 |
|
|
|
} |
|
|
|
let before_after_distance = getDistance( |
|
|
|
[after.longitude, after.latitude], |
|
|
|
[before.longitude, before.latitude] |
|
|
|
// 过滤掉前、后点位都超过40m的,且前和后点位小于20m的, |
|
|
|
if (beforeDistance > 40 && afterDistance > 40 && before_after_distance < 20) { |
|
|
|
console.log( |
|
|
|
'过滤掉前和后点位相差小于20m的,且与前、后点位都超过40m的', |
|
|
|
beforeDistance, |
|
|
|
afterDistance, |
|
|
|
before_after_distance |
|
|
|
) |
|
|
|
console.log('before_after_distance', before_after_distance) |
|
|
|
|
|
|
|
if (before_after_distance < 20) { |
|
|
|
return true |
|
|
|
return false |
|
|
|
} |
|
|
|
|
|
|
|
return false |
|
|
|
// console.log('beforeDistance', afterDistance) |
|
|
|
// console.log('前距离', beforeDistance,'后距离',afterDistance,'前后距离',before_after_distance) |
|
|
|
|
|
|
|
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(() => { |
|
|
|
|