UNPKG

ngx-amap

Version:

[![npm](https://img.shields.io/npm/v/ngx-amap.svg)][npm-badge-url] [![npm](https://img.shields.io/npm/dm/ngx-amap.svg)][npm-badge-url] [![Build Status](https://travis-ci.org/xieziyu/ngx-amap.svg?branch=master)][ci-url]

178 lines 12 kB
/** * @fileoverview added by tsickle * Generated from: directives/amap-heatmap/amap-heatmap.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Input, Output, EventEmitter, Directive, NgZone, } from '@angular/core'; import { zip } from 'rxjs'; import { AmapHeatmapService } from './amap-heatmap.service'; import { LoggerService } from '../../shared/logger/logger.service'; import { getOptions, ChangeFilter } from '../../utils'; /** @type {?} */ const TAG = 'amap-heatmap'; /** @type {?} */ const HeatmapOptions = ['radius', 'gradient', 'opacity', 'zooms']; export class AmapHeatmapDirective { /** * @param {?} os * @param {?} logger * @param {?} ngZone */ constructor(os, logger, ngZone) { this.os = os; this.logger = logger; this.ngZone = ngZone; /** * 额外: 是否隐藏 */ this.hidden = false; // ---- Events ---- this.naReady = new EventEmitter(); this.inited = false; } /** * @return {?} */ ngOnDestroy() { this.os.destroy(); } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { /** @type {?} */ const filter = ChangeFilter.of(changes); /** @type {?} */ const heatmap = this.get(); if (!this.inited) { this.logger.d(TAG, 'initializing ...'); /** @type {?} */ const options = this.options || getOptions(this, HeatmapOptions); this.logger.d(TAG, 'options:', options); this.os.create(options).subscribe((/** * @param {?} m * @return {?} */ m => { this.ngZone.run((/** * @return {?} */ () => this.naReady.emit(m))); this.logger.d(TAG, 'heatmap is ready.'); })); this.inited = true; } else { zip(filter.has('options'), heatmap).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => p.setOptions(v || {}))); } zip(filter.notEmpty('dataset'), heatmap).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => { p.setDataSet(v); })); zip(filter.has('hidden'), heatmap).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => (v ? p.hide() : p.show()))); } /** * 获取已创建的 AMap.Heatmap 对象 * @return {?} */ get() { return this.os.get(); } } AmapHeatmapDirective.decorators = [ { type: Directive, args: [{ selector: 'amap-heatmap', exportAs: 'heatmap', providers: [AmapHeatmapService], },] } ]; /** @nocollapse */ AmapHeatmapDirective.ctorParameters = () => [ { type: AmapHeatmapService }, { type: LoggerService }, { type: NgZone } ]; AmapHeatmapDirective.propDecorators = { radius: [{ type: Input }], gradient: [{ type: Input }], opacity: [{ type: Input }], zooms: [{ type: Input }], hidden: [{ type: Input }], options: [{ type: Input }], dataset: [{ type: Input }], naReady: [{ type: Output }] }; if (false) { /** * 热力图中单个点的半径,默认:30,单位:pixel * @type {?} */ AmapHeatmapDirective.prototype.radius; /** * 热力图的渐变区间 * @type {?} */ AmapHeatmapDirective.prototype.gradient; /** * 热力图透明度数组,取值范围[0,1],0表示完全透明,1表示不透明 * 默认:[0,1] * @type {?} */ AmapHeatmapDirective.prototype.opacity; /** * 支持的缩放级别范围,取值范围[3-18] * 默认:[3,18] * @type {?} */ AmapHeatmapDirective.prototype.zooms; /** * 额外: 是否隐藏 * @type {?} */ AmapHeatmapDirective.prototype.hidden; /** * 额外: 会覆盖其他属性的配置方式 * @type {?} */ AmapHeatmapDirective.prototype.options; /** * 额外: 坐标数据集 * @type {?} */ AmapHeatmapDirective.prototype.dataset; /** @type {?} */ AmapHeatmapDirective.prototype.naReady; /** * @type {?} * @private */ AmapHeatmapDirective.prototype.inited; /** * @type {?} * @protected */ AmapHeatmapDirective.prototype.os; /** * @type {?} * @private */ AmapHeatmapDirective.prototype.logger; /** * @type {?} * @private */ AmapHeatmapDirective.prototype.ngZone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1oZWF0bWFwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1hbWFwLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy9hbWFwLWhlYXRtYXAvYW1hcC1oZWF0bWFwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBSVQsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0IsT0FBTyxFQUFFLGtCQUFrQixFQUFlLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDOztNQUVqRCxHQUFHLEdBQUcsY0FBYzs7TUFDcEIsY0FBYyxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDO0FBT2pFLE1BQU0sT0FBTyxvQkFBb0I7Ozs7OztJQXNDL0IsWUFDWSxFQUFzQixFQUN4QixNQUFxQixFQUNyQixNQUFjO1FBRlosT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFROzs7O1FBbEJmLFdBQU0sR0FBRyxLQUFLLENBQUM7O1FBV2QsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFL0IsV0FBTSxHQUFHLEtBQUssQ0FBQztJQU1wQixDQUFDOzs7O0lBRUosV0FBVztRQUNULElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBc0I7O2NBQzFCLE1BQU0sR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQzs7Y0FDakMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLENBQUM7O2tCQUNqQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQXNCLElBQUksRUFBRSxjQUFjLENBQUM7WUFDckYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRzs7O2dCQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1lBQzFDLENBQUMsRUFBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDcEI7YUFBTTtZQUNMLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFzQixTQUFTLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTOzs7O1lBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzVFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUN0QixDQUFDO1NBQ0g7UUFFRCxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBc0IsU0FBUyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUzs7OztRQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNqRixDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLENBQUMsRUFBQyxDQUFDO1FBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQVUsUUFBUSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUzs7OztRQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFDLENBQUM7SUFDL0YsQ0FBQzs7Ozs7SUFLRCxHQUFHO1FBQ0QsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OztZQWxGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzthQUNoQzs7OztZQVhRLGtCQUFrQjtZQUNsQixhQUFhO1lBSnBCLE1BQU07OztxQkFvQkwsS0FBSzt1QkFJTCxLQUFLO3NCQUtMLEtBQUs7b0JBS0wsS0FBSztxQkFJTCxLQUFLO3NCQUlMLEtBQUs7c0JBSUwsS0FBSztzQkFHTCxNQUFNOzs7Ozs7O0lBN0JQLHNDQUF3Qjs7Ozs7SUFJeEIsd0NBQTZDOzs7Ozs7SUFLN0MsdUNBQW1DOzs7Ozs7SUFLbkMscUNBQWlDOzs7OztJQUlqQyxzQ0FBd0I7Ozs7O0lBSXhCLHVDQUFzQzs7Ozs7SUFJdEMsdUNBQXNDOztJQUd0Qyx1Q0FBdUM7Ozs7O0lBRXZDLHNDQUF1Qjs7Ozs7SUFHckIsa0NBQWdDOzs7OztJQUNoQyxzQ0FBNkI7Ozs7O0lBQzdCLHNDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgRGlyZWN0aXZlLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlcyxcbiAgTmdab25lLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQW1hcEhlYXRtYXBTZXJ2aWNlLCBBTWFwSGVhdG1hcCB9IGZyb20gJy4vYW1hcC1oZWF0bWFwLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0T3B0aW9ucywgQ2hhbmdlRmlsdGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCBUQUcgPSAnYW1hcC1oZWF0bWFwJztcbmNvbnN0IEhlYXRtYXBPcHRpb25zID0gWydyYWRpdXMnLCAnZ3JhZGllbnQnLCAnb3BhY2l0eScsICd6b29tcyddO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhbWFwLWhlYXRtYXAnLFxuICBleHBvcnRBczogJ2hlYXRtYXAnLFxuICBwcm92aWRlcnM6IFtBbWFwSGVhdG1hcFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBbWFwSGVhdG1hcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgLy8gLS0tLSBPcHRpb25zIC0tLS1cbiAgLyoqXG4gICAqIOeDreWKm+WbvuS4reWNleS4queCueeahOWNiuW+hO+8jOm7mOiupO+8mjMw77yM5Y2V5L2N77yacGl4ZWxcbiAgICovXG4gIEBJbnB1dCgpIHJhZGl1czogbnVtYmVyO1xuICAvKipcbiAgICog54Ot5Yqb5Zu+55qE5riQ5Y+Y5Yy66Ze0XG4gICAqL1xuICBASW5wdXQoKSBncmFkaWVudDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLyoqXG4gICAqIOeDreWKm+WbvumAj+aYjuW6puaVsOe7hO+8jOWPluWAvOiMg+WbtFswLDFd77yMMOihqOekuuWujOWFqOmAj+aYju+8jDHooajnpLrkuI3pgI/mmI5cbiAgICog6buY6K6k77yaWzAsMV1cbiAgICovXG4gIEBJbnB1dCgpIG9wYWNpdHk6IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiDmlK/mjIHnmoTnvKnmlL7nuqfliKvojIPlm7TvvIzlj5blgLzojIPlm7RbMy0xOF1cbiAgICog6buY6K6k77yaWzMsMThdXG4gICAqL1xuICBASW5wdXQoKSB6b29tczogW251bWJlciwgbnVtYmVyXTtcbiAgLyoqXG4gICAqIOmineWkljog5piv5ZCm6ZqQ6JePXG4gICAqL1xuICBASW5wdXQoKSBoaWRkZW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIOmineWkljog5Lya6KaG55uW5YW25LuW5bGe5oCn55qE6YWN572u5pa55byPXG4gICAqL1xuICBASW5wdXQoKSBvcHRpb25zOiBBTWFwSGVhdG1hcC5PcHRpb25zO1xuICAvKipcbiAgICog6aKd5aSWOiDlnZDmoIfmlbDmja7pm4ZcbiAgICovXG4gIEBJbnB1dCgpIGRhdGFzZXQ6IEFNYXBIZWF0bWFwLkRhdGFTZXQ7XG5cbiAgLy8gLS0tLSBFdmVudHMgLS0tLVxuICBAT3V0cHV0KCkgbmFSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIGluaXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvczogQW1hcEhlYXRtYXBTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9zLmRlc3Ryb3koKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCBmaWx0ZXIgPSBDaGFuZ2VGaWx0ZXIub2YoY2hhbmdlcyk7XG4gICAgY29uc3QgaGVhdG1hcCA9IHRoaXMuZ2V0KCk7XG4gICAgaWYgKCF0aGlzLmluaXRlZCkge1xuICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICdpbml0aWFsaXppbmcgLi4uJyk7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zIHx8IGdldE9wdGlvbnM8QU1hcEhlYXRtYXAuT3B0aW9ucz4odGhpcywgSGVhdG1hcE9wdGlvbnMpO1xuICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICdvcHRpb25zOicsIG9wdGlvbnMpO1xuICAgICAgdGhpcy5vcy5jcmVhdGUob3B0aW9ucykuc3Vic2NyaWJlKG0gPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5uYVJlYWR5LmVtaXQobSkpO1xuICAgICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ2hlYXRtYXAgaXMgcmVhZHkuJyk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuaW5pdGVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgemlwKGZpbHRlci5oYXM8QU1hcEhlYXRtYXAuT3B0aW9ucz4oJ29wdGlvbnMnKSwgaGVhdG1hcCkuc3Vic2NyaWJlKChbdiwgcF0pID0+XG4gICAgICAgIHAuc2V0T3B0aW9ucyh2IHx8IHt9KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgemlwKGZpbHRlci5ub3RFbXB0eTxBTWFwSGVhdG1hcC5EYXRhU2V0PignZGF0YXNldCcpLCBoZWF0bWFwKS5zdWJzY3JpYmUoKFt2LCBwXSkgPT4ge1xuICAgICAgcC5zZXREYXRhU2V0KHYpO1xuICAgIH0pO1xuICAgIHppcChmaWx0ZXIuaGFzPGJvb2xlYW4+KCdoaWRkZW4nKSwgaGVhdG1hcCkuc3Vic2NyaWJlKChbdiwgcF0pID0+ICh2ID8gcC5oaWRlKCkgOiBwLnNob3coKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPluW3suWIm+W7uueahCBBTWFwLkhlYXRtYXAg5a+56LGhXG4gICAqL1xuICBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMub3MuZ2V0KCk7XG4gIH1cbn1cbiJdfQ==