支持动态筛选路线

This commit is contained in:
Shikong 2023-05-18 15:56:43 +08:00
parent a26a5ef8af
commit 76dcedce51
2 changed files with 37 additions and 35 deletions

View File

@ -118,6 +118,7 @@ import {
} from "matrix-middle-service-web/src/views/record/logic/login"; } from "matrix-middle-service-web/src/views/record/logic/login";
import {fixedLocationHandler} from "matrix-middle-service-web/src/views/record/logic/location"; import {fixedLocationHandler} from "matrix-middle-service-web/src/views/record/logic/location";
import {drawMarkers} from "matrix-middle-service-web/src/views/record/logic/markers"; import {drawMarkers} from "matrix-middle-service-web/src/views/record/logic/markers";
import {drawLines} from "matrix-middle-service-web/src/views/record/logic/lines";
const $q = useQuasar(); const $q = useQuasar();
const scrollArea = reactive({ const scrollArea = reactive({
thumbStyle: { thumbStyle: {
@ -135,7 +136,6 @@ const scrollArea = reactive({
opacity: "0.2" opacity: "0.2"
} }
}) })
let canvasDir = createCanvasDir();
function login(){ function login(){
loginRequest(authModel).finally(()=>{ loginRequest(authModel).finally(()=>{
@ -157,7 +157,6 @@ const feature = reactive({
let map = {} let map = {}
const data = { const data = {
data: [], data: [],
polyline: {},
polylines: [], polylines: [],
fixedPolyline: {}, fixedPolyline: {},
labelsLayer: null, labelsLayer: null,
@ -249,7 +248,10 @@ function toggleTraffic() {
} }
function changeShowLines(){ function changeShowLines(){
console.log("options.showLines",options.showLines)
console.log("view.lines",view.lines)
drawMarkers(map,data,options,view.lines.filter((_,index)=>options.showLines.includes(index))) drawMarkers(map,data,options,view.lines.filter((_,index)=>options.showLines.includes(index)))
drawLines(map,data,view.lines.filter((_,index)=>options.showLines.includes(index)))
} }
AMapLoader.load({ AMapLoader.load({
@ -332,7 +334,6 @@ AMapLoader.load({
function clearMap(){ function clearMap(){
view.lines = [] view.lines = []
map.remove(data.polylines) map.remove(data.polylines)
map.remove(data.polyline)
map.remove(data.markers) map.remove(data.markers)
map.remove(data.infoWindow) map.remove(data.infoWindow)
} }
@ -388,39 +389,8 @@ function drawMap(autoSelect=false){
console.log("lines", view.lines) console.log("lines", view.lines)
drawMarkers(map,data,options,view.lines.filter((_,index)=>options.showLines.includes(index))) drawMarkers(map,data,options,view.lines.filter((_,index)=>options.showLines.includes(index)))
drawLines(map,data,view.lines.filter((_,index)=>options.showLines.includes(index)))
let colorList = randomColorList(view.lines.length)
data.polylines = []
view.lines.forEach((_data,index) => {
let path = _data.map((item) => {
return new AMap.LngLat(item.longitude, item.latitude)
})
let polyline = new AMap.Polyline({
path: path,
showDir: true,
dirImg: canvasDir,
borderWeight: 6, // 线 1
strokeWeight: 6,
strokeOpacity: 0.9, //
strokeColor: colorList[index], // 线
dirColor: 'white',
lineJoin: 'round' // 线})
})
data.polylines.push(polyline)
})
console.log("polylines",data.polylines)
// polyline = new AMap.Polyline({
// path: path,
// showDir: true,
// dirImg: canvasDir,
// borderWeight: 6, // 线 1
// strokeWeight: 6,
// strokeColor: 'red', // 线
// dirColor: 'white',
// lineJoin: 'round' // 线})
// })
map.add(data.polylines)
setTimeout(()=>{ setTimeout(()=>{
if(!options.autoScaling){ if(!options.autoScaling){
return return

View File

@ -0,0 +1,32 @@
import {randomColorList} from "matrix-middle-service-web/src/views/record/logic/color";
import {createCanvasDir} from "matrix-middle-service-web/src/views/record/logic/icon";
const canvasDir = createCanvasDir();
export function drawLines(map,data,lines){
map.remove(data.polylines)
data.polylines = []
let colorList = randomColorList(lines.length)
lines.forEach((_data,index) => {
let path = _data.map((item) => {
return new AMap.LngLat(item.longitude, item.latitude)
})
let polyline = new AMap.Polyline({
path: path,
showDir: true,
dirImg: canvasDir,
borderWeight: 6, // 线条宽度,默认为 1
strokeWeight: 6,
strokeOpacity: 0.9, // 透明度
strokeColor: colorList[index], // 线条颜色
dirColor: 'white',
lineJoin: 'round' // 折线拐点连接处样式})
})
data.polylines.push(polyline)
})
console.log("polylines",data.polylines)
map.add(data.polylines)
}