UNPKG

kmap-ui

Version:

A components of zmap base on vue2.X

81 lines (72 loc) 2.4 kB
/* Copyright (c) 2016 Jean-Marc VIGLINO, released under the CeCILL license (http://www.cecill.info/). */ import ol_ext_inherits from '../util/ext' import ol_featureAnimation from './FeatureAnimation' /** Zoom animation: feature zoom in (for points) * @constructor * @extends {ol_featureAnimation} * @param {ol_featureAnimationZoomOptions} options * @param {bool} options.zoomOut to zoom out */ var ol_featureAnimation_Zoom = function(options){ options = options || {}; ol_featureAnimation.call(this, options); this.set('zoomout', options.zoomOut); } ol_ext_inherits(ol_featureAnimation_Zoom, ol_featureAnimation); /** Zoom animation: feature zoom out (for points) * @constructor * @extends {ol_featureAnimation} * @param {ol_featureAnimationZoomOptions} options */ var ol_featureAnimation_ZoomOut = function(options) { options = options || {}; options.zoomOut = true; ol_featureAnimation_Zoom.call(this, options); } ol_ext_inherits(ol_featureAnimation_ZoomOut, ol_featureAnimation_Zoom); /** Animate * @param {ol_featureAnimationEvent} e */ ol_featureAnimation_Zoom.prototype.animate = function (e) { var fac = this.easing_(e.elapsed); if (fac) { if (this.get('zoomout')) fac = 1/fac; var style = e.style; var i, imgs, sc=[] for (i=0; i<style.length; i++) { imgs = style[i].getImage(); if (imgs) { sc[i] = imgs.getScale(); // ol >= v6 if (e.type==='postrender') imgs.setScale(sc[i]*fac/e.frameState.pixelRatio); else imgs.setScale(sc[i]*fac); } } this.drawGeom_(e, e.geom); for (i=0; i<style.length; i++) { imgs = style[i].getImage(); if (imgs) imgs.setScale(sc[i]); } } /* var sc = this.easing_(e.elapsed); if (sc) { e.context.save() console.log(e) var ratio = e.frameState.pixelRatio; var m = e.frameState.coordinateToPixelTransform; var dx = (1/(sc)-1)* ratio * (m[0]*e.coord[0] + m[1]*e.coord[1] +m[4]); var dy = (1/(sc)-1)*ratio * (m[2]*e.coord[0] + m[3]*e.coord[1] +m[5]); e.context.scale(sc,sc); e.context.translate(dx,dy); this.drawGeom_(e, e.geom); e.context.restore() } */ return (e.time <= this.duration_); } export {ol_featureAnimation_Zoom, ol_featureAnimation_ZoomOut} export default ol_featureAnimation_Zoom