ol-ext
Version:
A set of cool extensions for OpenLayers (ol) in node modules structure
44 lines (38 loc) • 1.27 kB
JavaScript
/*
Copyright (c) 2016 Jean-Marc VIGLINO,
released under the CeCILL license (http://www.cecill.info/).
*/
import ol_featureAnimation from './FeatureAnimation.js'
/** Slice animation: feature enter from left
* @constructor
* @extends {ol_featureAnimation}
* @param {ol_featureAnimationSlideOptions} options
* @param {Number} options.speed speed of the animation, if 0 the duration parameter will be used instead, default 0
*/
var ol_featureAnimation_Slide = class olfeatureAnimationSlide extends ol_featureAnimation {
constructor(options) {
options = options || {};
super(options);
this.speed_ = options.speed || 0;
this.side_ = options.side || 'left';
}
/** Animate
* @param {ol_featureAnimationEvent} e
*/
animate(e) {
if (!e.time) {
if (this.side_ == 'left')
this.dx = (e.extent[0] - e.bbox[2]);
else
this.dx = (e.extent[2] - e.bbox[0]);
if (this.speed_)
this.duration_ = Math.abs(this.dx) / this.speed_ / e.frameState.viewState.resolution;
}
// Animate
var flashGeom = e.geom.clone();
flashGeom.translate(this.dx * (1 - this.easing_(e.elapsed)), 0);
this.drawGeom_(e, flashGeom);
return (e.time <= this.duration_);
}
}
export default ol_featureAnimation_Slide