小车动画跟随 + 速度弹窗
This commit is contained in:
parent
e0231ffda6
commit
eae6eda526
@ -172,7 +172,7 @@ const data = {
|
|||||||
labelsLayer: null,
|
labelsLayer: null,
|
||||||
markers: [],
|
markers: [],
|
||||||
tmpMarker: null,
|
tmpMarker: null,
|
||||||
infoWindow: {},
|
infoWindow: null,
|
||||||
animateMarker: null,
|
animateMarker: null,
|
||||||
}
|
}
|
||||||
const view = reactive({
|
const view = reactive({
|
||||||
@ -352,7 +352,6 @@ function clearMap(){
|
|||||||
view.lines = []
|
view.lines = []
|
||||||
map.remove(data.polylines)
|
map.remove(data.polylines)
|
||||||
map.remove(data.markers)
|
map.remove(data.markers)
|
||||||
map.remove(data.infoWindow)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,14 +10,26 @@ export function playAnimation(map,data,line){
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!data.infoWindow){
|
||||||
|
data.infoWindow = new AMap.InfoWindow({
|
||||||
|
offset: new AMap.Pixel(6, -25),
|
||||||
|
content: ""
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
let path = line.map((item) => {
|
let path = line.map((item) => {
|
||||||
return new AMap.LngLat(item.longitude, item.latitude)
|
return new AMap.LngLat(item.longitude, item.latitude)
|
||||||
})
|
})
|
||||||
|
|
||||||
let index = 0
|
let index = 0
|
||||||
data.animateMarker.stopMove();
|
data.animateMarker.stopMove();
|
||||||
data.animateMarker.on("movealong",()=>{
|
data.animateMarker.on("movealong",()=>{})
|
||||||
// map.add(data.animateMarker)
|
data.animateMarker.on("moving",(e)=>{
|
||||||
|
let lastLocation = e.passedPath[e.passedPath.length - 1];
|
||||||
|
data.infoWindow.setPosition(lastLocation);
|
||||||
|
let speed = ((line[e.index].speed||0) * 3.6).toFixed(2)
|
||||||
|
data.infoWindow.setContent(`${speed} km/h`);
|
||||||
|
map.setCenter(e.target.getPosition(),true)
|
||||||
})
|
})
|
||||||
data.animateMarker.on("moveend",()=>{
|
data.animateMarker.on("moveend",()=>{
|
||||||
index++
|
index++
|
||||||
@ -25,6 +37,7 @@ export function playAnimation(map,data,line){
|
|||||||
if(index === line.length-1){
|
if(index === line.length-1){
|
||||||
setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
map.remove(data.animateMarker)
|
map.remove(data.animateMarker)
|
||||||
|
data.infoWindow.close()
|
||||||
},100)
|
},100)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -35,4 +48,5 @@ export function playAnimation(map,data,line){
|
|||||||
duration: 1000/60,
|
duration: 1000/60,
|
||||||
autoRotation: true
|
autoRotation: true
|
||||||
});
|
});
|
||||||
|
data.infoWindow.open(map, data.animateMarker.getPosition())
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user