Sha256: d1240893615854a2f311156e31257fed76ee5de30aae0cda9104449c61e5db84
Contents?: true
Size: 1.86 KB
Versions: 1
Compression:
Stored size: 1.86 KB
Contents
/* * L.Renderer is a base class for renderer implementations (SVG, Canvas); * handles renderer container, bounds and zoom animation. */ L.Renderer = L.Layer.extend({ options: { // how much to extend the clip area around the map view (relative to its size) // e.g. 0.1 would be 10% of map view in each direction; defaults to clip with the map view padding: 0 }, initialize: function (options) { L.setOptions(this, options); L.stamp(this); }, onAdd: function () { if (!this._container) { this._initContainer(); // defined by renderer implementations if (this._zoomAnimated) { L.DomUtil.addClass(this._container, 'leaflet-zoom-animated'); } } this.getPane().appendChild(this._container); this._update(); }, onRemove: function () { L.DomUtil.remove(this._container); }, getEvents: function () { var events = { moveend: this._update }; if (this._zoomAnimated) { events.zoomanim = this._animateZoom; } return events; }, _animateZoom: function (e) { var origin = e.origin.subtract(this._map._getCenterLayerPoint()), offset = this._bounds.min.add(origin.multiplyBy(1 - e.scale)); L.DomUtil.setTransform(this._container, offset, e.scale); }, _update: function () { // update pixel bounds of renderer container (for positioning/sizing/clipping later) var p = this.options.padding, size = this._map.getSize(), min = this._map.containerPointToLayerPoint(size.multiplyBy(-p)).round(); this._bounds = new L.Bounds(min, min.add(size.multiplyBy(1 + p * 2)).round()); } }); L.Map.include({ // used by each vector layer to decide which renderer to use getRenderer: function (layer) { var renderer = layer.options.renderer || this.options.renderer || (L.SVG && L.SVG.instance) || (L.Canvas && L.Canvas.instance); if (!this.hasLayer(renderer)) { this.addLayer(renderer); } return renderer; } });
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
leaflet-js-0.8.dev2 | lib/leaflet/src/layer/vector/Renderer.js |