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.
GCSGUI/src/store/layerManagerStore.ts

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 = []
}
}
})