angular-leaflet
Version:
Collection of angular components to build map views faster and with minimal configuration using the most popular library **LeafletJS**.
112 lines • 8.23 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, forwardRef, Input } from '@angular/core';
import { imageOverlay, latLngBounds } from 'leaflet';
import { BaseLayer } from '../core/base-layer';
export class ImageOverlayComponent extends BaseLayer {
/**
* @param {?} value
* @return {?}
*/
set src(value) {
this._url = value;
if (this.layerRef) {
this.layerRef.setUrl(value);
}
else {
this.prepareLayer();
}
}
/**
* @param {?} value
* @return {?}
*/
set width(value) {
this._width = value;
if (this.layerRef) {
this.layerRef.setBounds(this.prepareBounds(this._width, this._height));
}
else {
this.prepareLayer();
}
}
/**
* @param {?} value
* @return {?}
*/
set height(value) {
this._height = value;
if (this.layerRef) {
this.layerRef.setBounds(this.prepareBounds(this._width, this._height));
}
else {
this.prepareLayer();
}
}
/**
* @param {?} map
* @return {?}
*/
addTo(map) {
super.addTo(map);
this.prepareLayer();
}
/**
* @return {?}
*/
prepareLayer() {
if (this.mapRef && this._url && this._height && this._width) {
this.layerRef = imageOverlay(this._url, this.prepareBounds(this._width, this._height));
this.mapRef.addLayer(this.layerRef);
this.initHandlers();
}
}
/**
* @private
* @param {?} width
* @param {?} height
* @return {?}
*/
prepareBounds(width, height) {
/** @type {?} */
const southWest = ((/** @type {?} */ (this.mapRef))).unproject([0, height * 2], 1);
/** @type {?} */
const northEast = ((/** @type {?} */ (this.mapRef))).unproject([width * 2, 0], 1);
return latLngBounds(southWest, northEast);
}
}
ImageOverlayComponent.decorators = [
{ type: Component, args: [{
selector: 'ngl-image-overlay',
template: '',
providers: [{ provide: BaseLayer, useExisting: forwardRef((/**
* @return {?}
*/
() => ImageOverlayComponent)) }]
}] }
];
ImageOverlayComponent.propDecorators = {
src: [{ type: Input }],
width: [{ type: Input }],
height: [{ type: Input }]
};
if (false) {
/**
* @type {?}
* @private
*/
ImageOverlayComponent.prototype._url;
/**
* @type {?}
* @private
*/
ImageOverlayComponent.prototype._width;
/**
* @type {?}
* @private
*/
ImageOverlayComponent.prototype._height;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Utb3ZlcmxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLWxlYWZsZXQvIiwic291cmNlcyI6WyJpbWFnZS1vdmVybGF5L2ltYWdlLW92ZXJsYXkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBOEIsWUFBWSxFQUFtQixNQUFNLFNBQVMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFPL0MsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFNBQXVCOzs7OztJQUNoRSxJQUFhLEdBQUcsQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQzs7Ozs7SUFFRCxJQUFhLEtBQUssQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDeEU7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7Ozs7O0lBRUQsSUFBYSxNQUFNLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ3hFO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDOzs7OztJQU1ELEtBQUssQ0FBQyxHQUFxQjtRQUN6QixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs7O0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUMzRCxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN2RixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQzs7Ozs7OztJQUVPLGFBQWEsQ0FBQyxLQUFhLEVBQUUsTUFBYzs7Y0FDM0MsU0FBUyxHQUFHLENBQUMsbUJBQUEsSUFBSSxDQUFDLE1BQU0sRUFBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7O2NBQ2xFLFNBQVMsR0FBRyxDQUFDLG1CQUFBLElBQUksQ0FBQyxNQUFNLEVBQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9ELE9BQU8sWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDOzs7WUF2REYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLFFBQVEsRUFBRSxFQUFFO2dCQUNaLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVTs7O3dCQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixFQUFDLEVBQUUsQ0FBQzthQUMxRjs7O2tCQUVFLEtBQUs7b0JBU0wsS0FBSztxQkFTTCxLQUFLOzs7Ozs7O0lBU04scUNBQXFCOzs7OztJQUNyQix1Q0FBdUI7Ozs7O0lBQ3ZCLHdDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGltYWdlT3ZlcmxheSwgSW1hZ2VPdmVybGF5LCBMYXRMbmdCb3VuZHMsIGxhdExuZ0JvdW5kcywgTGF5ZXJHcm91cCwgTWFwIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBCYXNlTGF5ZXIgfSBmcm9tICcuLi9jb3JlL2Jhc2UtbGF5ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2wtaW1hZ2Utb3ZlcmxheScsXG4gIHRlbXBsYXRlOiAnJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBCYXNlTGF5ZXIsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEltYWdlT3ZlcmxheUNvbXBvbmVudCkgfV1cbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VPdmVybGF5Q29tcG9uZW50IGV4dGVuZHMgQmFzZUxheWVyPEltYWdlT3ZlcmxheT4ge1xuICBASW5wdXQoKSBzZXQgc3JjKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl91cmwgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5sYXllclJlZikge1xuICAgICAgdGhpcy5sYXllclJlZi5zZXRVcmwodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByZXBhcmVMYXllcigpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIHNldCB3aWR0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fd2lkdGggPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5sYXllclJlZikge1xuICAgICAgdGhpcy5sYXllclJlZi5zZXRCb3VuZHModGhpcy5wcmVwYXJlQm91bmRzKHRoaXMuX3dpZHRoLCB0aGlzLl9oZWlnaHQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmVwYXJlTGF5ZXIoKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaGVpZ2h0KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9oZWlnaHQgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5sYXllclJlZikge1xuICAgICAgdGhpcy5sYXllclJlZi5zZXRCb3VuZHModGhpcy5wcmVwYXJlQm91bmRzKHRoaXMuX3dpZHRoLCB0aGlzLl9oZWlnaHQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmVwYXJlTGF5ZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cmw6IHN0cmluZztcbiAgcHJpdmF0ZSBfd2lkdGg6IG51bWJlcjtcbiAgcHJpdmF0ZSBfaGVpZ2h0OiBudW1iZXI7XG5cbiAgYWRkVG8obWFwOiBNYXAgfCBMYXllckdyb3VwKTogdm9pZCB7XG4gICAgc3VwZXIuYWRkVG8obWFwKTtcbiAgICB0aGlzLnByZXBhcmVMYXllcigpO1xuICB9XG5cbiAgcHJlcGFyZUxheWVyKCkge1xuICAgIGlmICh0aGlzLm1hcFJlZiAmJiB0aGlzLl91cmwgJiYgdGhpcy5faGVpZ2h0ICYmIHRoaXMuX3dpZHRoKSB7XG4gICAgICB0aGlzLmxheWVyUmVmID0gaW1hZ2VPdmVybGF5KHRoaXMuX3VybCwgdGhpcy5wcmVwYXJlQm91bmRzKHRoaXMuX3dpZHRoLCB0aGlzLl9oZWlnaHQpKTtcbiAgICAgIHRoaXMubWFwUmVmLmFkZExheWVyKHRoaXMubGF5ZXJSZWYpO1xuICAgICAgdGhpcy5pbml0SGFuZGxlcnMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVCb3VuZHMod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiBMYXRMbmdCb3VuZHMge1xuICAgIGNvbnN0IHNvdXRoV2VzdCA9ICh0aGlzLm1hcFJlZiBhcyBNYXApLnVucHJvamVjdChbMCwgaGVpZ2h0ICogMl0sIDEpLFxuICAgICAgbm9ydGhFYXN0ID0gKHRoaXMubWFwUmVmIGFzIE1hcCkudW5wcm9qZWN0KFt3aWR0aCAqIDIsIDBdLCAxKTtcblxuICAgIHJldHVybiBsYXRMbmdCb3VuZHMoc291dGhXZXN0LCBub3J0aEVhc3QpO1xuICB9XG59XG4iXX0=