UNPKG

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
/** * @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=