You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
import {defineStore} from "pinia";
|
|
import {Airline, routeTerrain} from "@/types/entityoptions.ts";
|
|
type layer = {
|
|
lName: string
|
|
lId: string
|
|
dataSource?: any
|
|
imageLayer?: any
|
|
entity?: any[]
|
|
show: boolean
|
|
}
|
|
|
|
export const useLayerStore = defineStore('LayerStore', {
|
|
state: ()=>{
|
|
return {
|
|
Layers: [] as layer[],
|
|
openDetect: true,
|
|
validYCData: false,
|
|
navi: {
|
|
airlines: [] as Airline[],
|
|
currentRouteID: -1, //当前航线号
|
|
nextRouteID: -1, //下一航线号
|
|
nextPoint: -1, //下一航点号
|
|
distonext: -1, //待飞距离
|
|
hFactor: 3 //高度修正数
|
|
},
|
|
routesTerrain: [] as routeTerrain[]
|
|
}
|
|
},
|
|
actions: {
|
|
addLayer(lName: string, dataSource?:any, imageLayer?: any,entity?: any[], show= true) {
|
|
let time = new Date()
|
|
|
|
let layer: layer = {
|
|
dataSource: dataSource,
|
|
imageLayer: imageLayer,
|
|
entity: entity,
|
|
lId: time.getTime().toString(),
|
|
lName: lName,
|
|
show: show,
|
|
}
|
|
this.Layers.push(layer)
|
|
},
|
|
removeLayer(lId: string) {
|
|
let i = this.Layers.findIndex((layer:layer) => layer.lId === lId)
|
|
if(i > -1){
|
|
this.Layers.splice(i, 1)
|
|
}
|
|
},
|
|
clearLayers(){
|
|
this.Layers = []
|
|
}
|
|
}
|
|
}) |