添加 最大速度 和 平均速度 计算/显示
This commit is contained in:
parent
5a196caa73
commit
3726db0ad3
@ -48,11 +48,22 @@
|
|||||||
keep-color
|
keep-color
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div id="container"></div>
|
<div id="container">
|
||||||
|
<div class="fixed bg-amber-50 rounded-r z-max text-center" style="width: 300px" v-if="view.filterData.length > 0">
|
||||||
|
<div class="flex">
|
||||||
|
<div class="w-1/4">最高速度</div>
|
||||||
|
<div>{{view.speed.max}} km/h</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex">
|
||||||
|
<div class="w-1/4">平均速度</div>
|
||||||
|
<div>{{view.speed.avg}} km/h</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import AMapLoader from '@amap/amap-jsapi-loader';
|
import AMapLoader from '@amap/amap-jsapi-loader';
|
||||||
import {reactive, ref} from "vue";
|
import {reactive, ref, shallowReadonly, toRaw} from "vue";
|
||||||
import DateTimeSelector from "matrix-middle-service-web/src/components/DateTimeSelector.vue";
|
import DateTimeSelector from "matrix-middle-service-web/src/components/DateTimeSelector.vue";
|
||||||
import {useQuasar} from "quasar";
|
import {useQuasar} from "quasar";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
@ -83,7 +94,15 @@ const data = {
|
|||||||
labelsLayer: {},
|
labelsLayer: {},
|
||||||
markers: [],
|
markers: [],
|
||||||
tmpMarker: {},
|
tmpMarker: {},
|
||||||
|
infoWindow: {},
|
||||||
}
|
}
|
||||||
|
const view = reactive({
|
||||||
|
filterData: [],
|
||||||
|
speed: {
|
||||||
|
max: 0,
|
||||||
|
avg: 0
|
||||||
|
}
|
||||||
|
})
|
||||||
const layers = reactive({
|
const layers = reactive({
|
||||||
satellite: {
|
satellite: {
|
||||||
inst: {},
|
inst: {},
|
||||||
@ -239,6 +258,7 @@ function clearMap(){
|
|||||||
map.remove(data.polyline)
|
map.remove(data.polyline)
|
||||||
map.remove(data.labelsLayer)
|
map.remove(data.labelsLayer)
|
||||||
map.remove(data.markers)
|
map.remove(data.markers)
|
||||||
|
map.remove(data.infoWindow)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -260,6 +280,18 @@ function drawMap(){
|
|||||||
return a.time.isBefore(b.time)?-1:1
|
return a.time.isBefore(b.time)?-1:1
|
||||||
})
|
})
|
||||||
|
|
||||||
|
view.filterData = _data;
|
||||||
|
let sortSpeedData = JSON.parse(JSON.stringify(view.filterData)).sort((a,b)=>{return b.speed - a.speed})
|
||||||
|
view.speed.max = ((sortSpeedData[0]||{}).speed*3.6 || 0).toFixed(2);
|
||||||
|
|
||||||
|
if(view.filterData.length === 0){
|
||||||
|
view.speed.avg = 0
|
||||||
|
} else {
|
||||||
|
view.speed.avg = ((view.filterData.map(item=>item.speed || 0).reduce((prev,cur)=>{
|
||||||
|
return prev + cur
|
||||||
|
},0) / view.filterData.length) * 3.6).toFixed(2);
|
||||||
|
}
|
||||||
|
|
||||||
console.log("data", _data)
|
console.log("data", _data)
|
||||||
|
|
||||||
data.tmpMarker = new AMap.Marker({
|
data.tmpMarker = new AMap.Marker({
|
||||||
@ -344,8 +376,6 @@ function drawMap(){
|
|||||||
for (let i = 0; i < _data.length; i++) {
|
for (let i = 0; i < _data.length; i++) {
|
||||||
let datum = _data[i]
|
let datum = _data[i]
|
||||||
|
|
||||||
console.log(prev,datum.time, datum.time.diff(prev,'m') <= 5)
|
|
||||||
|
|
||||||
if (prev.year() === datum.time.year() && prev.month() === datum.time.month() && prev.date() === datum.time.date() && datum.time.diff(prev,'m') <= 5 ) {
|
if (prev.year() === datum.time.year() && prev.month() === datum.time.month() && prev.date() === datum.time.date() && datum.time.diff(prev,'m') <= 5 ) {
|
||||||
prev = datum.time
|
prev = datum.time
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user