ImageOverlay

This commit is contained in:
mourner 2010-09-27 17:02:00 +03:00
parent 49f9597d5a
commit 488046bde9

47
src/layer/ImageOverlay.js Normal file
View File

@ -0,0 +1,47 @@
L.ImageOverlay = L.Class.extend({
includes: L.Mixin.Events,
initialize: function(/*String*/ url, /*LatLngBounds*/ bounds) {
this._url = url;
this._bounds = bounds;
},
onAdd: function(map) {
this._map = map;
this._image = document.createElement('img');
this._image.style.visibility = 'hidden';
this._image.style.position = 'absolute';
//TODO opacity option
L.Util.extend(this._image, {
className: 'leaflet-image-layer',
galleryimg: 'no',
onselectstart: L.Util.falseFn,
onmousemove: L.Util.falseFn,
onload: this._onImageLoad,
src: this._url
});
this._map.getPanes().overlayPane.appendChild(this._image);
this._map.on('viewreset', this._reset, this);
this._reset();
},
_reset: function() {
var topLeft = this._map.latLngToLayerPoint(this._bounds.getNorthWest()),
bottomRight = this._map.latLngToLayerPoint(this._bounds.getSouthEast()),
size = bottomRight.subtract(topLeft);
L.DomUtil.setPosition(this._image, topLeft);
this._image.style.width = size.x + 'px';
this._image.style.height = size.y + 'px';
},
_onImageLoad: function() {
this.style.visibility = '';
//TODO fire layerload
}
});