瀏覽代碼

add dynamic layer

tags/2.2.0
Caven Chen 4 年之前
父節點
當前提交
cdd98ca7cb

+ 1
- 1
modules/copy-right/index.js 查看文件

1.框架作为一个基础平台,代码开源,任何个人和机构可以修改、重构,无需经过我方授权。 1.框架作为一个基础平台,代码开源,任何个人和机构可以修改、重构,无需经过我方授权。
2.任何个人和机构修改框架出现的问题,我方无需负责。 2.任何个人和机构修改框架出现的问题,我方无需负责。
3.后期会添加一些行业性的插件和工具,代码会适量开源。 3.后期会添加一些行业性的插件和工具,代码会适量开源。
4.对于我方发布的程序包,任何个人和机构在遵守下列条件的前提下可以永久免费使用:
4.对于我方发布的框架包,任何个人和机构在遵守下列条件的前提下可以永久免费使用:
1)程序包完整引用 1)程序包完整引用
2)保留此版权信息在控制台输出 2)保留此版权信息在控制台输出
我方保留对此版权信息的最终解释权。`, 我方保留对此版权信息的最终解释权。`,

+ 1
- 0
modules/layer/index.js 查看文件

*/ */
export { default as ClusterLayer } from './type/ClusterLayer' export { default as ClusterLayer } from './type/ClusterLayer'
export { default as CzmlLayer } from './type/CzmlLayer' export { default as CzmlLayer } from './type/CzmlLayer'
export { default as DynamicLayer } from './type/DynamicLayer'
export { default as FeatureGridLayer } from './type/FeatureGridLayer' export { default as FeatureGridLayer } from './type/FeatureGridLayer'
export { default as GeoJsonLayer } from './type/GeoJsonLayer' export { default as GeoJsonLayer } from './type/GeoJsonLayer'
export { default as HeatLayer } from './type/HeatLayer' export { default as HeatLayer } from './type/HeatLayer'

+ 32
- 0
modules/layer/type/DynamicLayer.js 查看文件

/**
* @Author: Caven
* @Date: 2021-05-05 09:12:41
*/

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

class DynamicLayer extends Layer {
constructor(id) {
super(id)
this._delegate = new Cesium.CustomDataSource(id)
this.type = Layer.getLayerType('dynamic')
this._state = State.INITIALIZED
}

/**
* Clears all entities
* @returns {DynamicLayer}
*/
clear() {
this._delegate.entities && this._delegate.entities.removeAll()
this._cache = {}
this._state = State.CLEARED
return this
}
}

Layer.registerType('dynamic')

export default DynamicLayer

+ 80
- 0
modules/overlay/dynamic/DynamicModel.js 查看文件

/**
* @Author: Caven
* @Date: 2021-05-05 09:16:35
*/

import { Cesium } from '@dc-modules/namespace'
import State from '@dc-modules/state/State'
import Parse from '@dc-modules/parse/Parse'
import { Util } from '@dc-modules/utils'
import { Transform } from '@dc-modules/transform'
import Overlay from '../Overlay'

class DynamicModel extends Overlay {
constructor(modelUrl) {
super()
this._delegate = new Cesium.Entity({ model: {} })
this._posistion = new Cesium.SampledPositionProperty()
this._modelUrl = modelUrl
this._timeLine = {}
this._lastTime = undefined
this.type = Overlay.getOverlayType('dynamic-model')
this._state = State.INITIALIZED
}

get position() {
return this._position
}

get timeLine() {
return this._timeLine
}

_mountedHook() {
this._posistion.forwardExtrapolationType = Cesium.ExtrapolationType.HOLD
this._delegate.position = this._posistion
this._delegate.orientation = new Cesium.VelocityOrientationProperty(
this._posistion
)
}

/**
*
* @param position
* @param interval
*/
addPosition(position, interval) {
let now = Cesium.JulianDate.now()
let time = Cesium.JulianDate.addSeconds(
now,
interval,
new Cesium.JulianDate()
)
this._lastTime = Cesium.JulianDate.toIso8601(time)
let cartesian = Transform.transformWGS84ToCartesian(
Parse.parsePosition(position)
)
this._posistion.addSample(time, cartesian)
this._timeLine[this._lastTime] = cartesian
return this
}

/**
* Sets style
* @param style
* @returns {DynamicModel}
*/
setStyle(style) {
if (!style || Object.keys(style).length === 0) {
return this
}
delete style['uri'] && delete style['position']
this._style = style
Util.merge(this._delegate.model, this._style)
return this
}
}

Overlay.registerType('dynamic-model')

export default DynamicModel

+ 5
- 0
modules/overlay/index.js 查看文件

export { default as CustomBillboard } from './custom/CustomBillboard' export { default as CustomBillboard } from './custom/CustomBillboard'
export { default as CustomLabel } from './custom/CustomLabel' export { default as CustomLabel } from './custom/CustomLabel'


/**
* dynamic
*/
export { default as DynamicModel } from './dynamic/DynamicModel'

/** /**
* model * model
*/ */

+ 4
- 0
packages/core/src/components.js 查看文件

Layer, Layer,
ClusterLayer, ClusterLayer,
CzmlLayer, CzmlLayer,
DynamicLayer,
FeatureGridLayer, FeatureGridLayer,
GeoJsonLayer, GeoJsonLayer,
HeatLayer, HeatLayer,
Overlay, Overlay,
CustomBillboard, CustomBillboard,
CustomLabel, CustomLabel,
DynamicModel,
Model, Model,
Tileset, Tileset,
AttackArrow, AttackArrow,
Layer, Layer,
ClusterLayer, ClusterLayer,
CzmlLayer, CzmlLayer,
DynamicLayer,
FeatureGridLayer, FeatureGridLayer,
GeoJsonLayer, GeoJsonLayer,
HeatLayer, HeatLayer,
Overlay, Overlay,
CustomBillboard, CustomBillboard,
CustomLabel, CustomLabel,
DynamicModel,
Model, Model,
Tileset, Tileset,
AttackArrow, AttackArrow,

Loading…
取消
儲存