gisthreemap
Version:
基于webGL的三维api
39 lines (37 loc) • 1.27 kB
JavaScript
import Effect from './Effect'
// 六边形扩散效果
class HexagonSpread extends Effect {
constructor(viewer, id) {
super(viewer, id)
}
add(position, color, maxRadius, duration, isedit = false) {
super.add(position, color, maxRadius, duration, isedit)
const _this = this
let currentRadius = 1
this.viewer.entities.add({
// id: _this.id,
eid: _this.eid,
position: Cesium.Cartesian3.fromDegrees(
position[0],
position[1],
position[2]
),
ellipse: {
semiMajorAxis: new Cesium.CallbackProperty(function(n) {
currentRadius += (1000 / _this.duration) * 50
if (currentRadius > _this.maxRadius) {
currentRadius = 1
}
return currentRadius
}, false),
semiMinorAxis: new Cesium.CallbackProperty(function(n) {
return currentRadius
}, false),
material: new Cesium.HexagonSpreadMaterialProperty(
new Cesium.Color.fromCssColorString(color)
),
},
})
}
}
export default HexagonSpread