Selaa lähdekoodia

add the GroundPrimitiveLayer

tags/2.8.0
Caven Chen 3 vuotta sitten
vanhempi
commit
93402e3ed0
2 muutettua tiedostoa jossa 47 lisäystä ja 2 poistoa
  1. 11
    2
      modules/layer/Layer.js
  2. 36
    0
      modules/layer/type/GroundPrimitiveLayer.js

+ 11
- 2
modules/layer/Layer.js Näytä tiedosto

@@ -17,6 +17,7 @@ class Layer {
this._viewer = undefined
this._state = undefined
this._show = true
this._isGround = false
this._cache = {}
this._attr = {}
this._layerEvent = new LayerEvent()
@@ -85,7 +86,11 @@ class Layer {
return
}
if (this._delegate instanceof Cesium.PrimitiveCollection) {
this._viewer.scene.primitives.add(this._delegate)
if (this._isGround) {
this._viewer.scene.groundPrimitives.add(this._delegate)
} else {
this._viewer.scene.primitives.add(this._delegate)
}
} else {
this._viewer.dataSources.add(this._delegate)
}
@@ -106,7 +111,11 @@ class Layer {
this._cache = {}
if (this._delegate instanceof Cesium.PrimitiveCollection) {
this._delegate.removeAll()
this._viewer.scene.primitives.remove(this._delegate)
if (this._isGround) {
this._viewer.scene.groundPrimitives.remove(this._delegate)
} else {
this._viewer.scene.primitives.remove(this._delegate)
}
} else if (this._delegate.then) {
this._delegate.then(dataSource => {
dataSource.entities.removeAll()

+ 36
- 0
modules/layer/type/GroundPrimitiveLayer.js Näytä tiedosto

@@ -0,0 +1,36 @@
/**
* @Author: Caven
* @Date: 2021-12-03 20:12:59
*/

import { Cesium } from '@dc-modules/namespace'
import State from '@dc-modules/state/State'
import Layer from '../Layer'

class GroundPrimitiveLayer extends Layer {
constructor(id) {
super(id)
this._delegate = new Cesium.PrimitiveCollection()
this._isGround = true
this._state = State.INITIALIZED
}

get type() {
return Layer.getLayerType('ground_primitive')
}

/**
*
* @return {GroundPrimitiveLayer}
*/
clear() {
this._delegate && this._delegate.removeAll()
this._cache = {}
this._state = State.CLEARED
return this
}
}

Layer.registerType('ground_primitive')

export default GroundPrimitiveLayer

Loading…
Peruuta
Tallenna