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]

109 lines 6.73 kB
/** * @fileoverview added by tsickle * Generated from: components/amap-text/amap-text.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable, NgZone } from '@angular/core'; import { ReplaySubject } from 'rxjs'; import { map } from 'rxjs/operators'; import { AMapService } from '../../shared/amap.service'; import { LoggerService } from '../../shared/logger/logger.service'; /** @type {?} */ const TAG = 'AmapText'; export class AmapTextService { /** * @param {?} amaps * @param {?} logger * @param {?} ngZone */ constructor(amaps, logger, ngZone) { this.amaps = amaps; this.logger = logger; this.ngZone = ngZone; this.text$ = new ReplaySubject(1); } /** * 获取点标记 * @return {?} */ get() { return this.text$.asObservable(); } /** * 创建点标记 AMap.Text * @param {?} options 选项 * @param {?=} addToMap 是否直接加进地图 * @return {?} */ create(options, addToMap = true) { return this.amaps.get().pipe(map((/** * @param {?} m * @return {?} */ m => { if (addToMap) { options.map = m; } this.text = this.ngZone.runOutsideAngular((/** * @return {?} */ () => new AMap.Text(options))); this.logger.d(TAG, 'new text created.'); this.text$.next(this.text); this.text$.complete(); return this.text; }))); } /** * 销毁点标记 * @return {?} */ destroy() { this.get().subscribe((/** * @param {?} m * @return {?} */ m => { m.setMap(null); this.logger.d(TAG, 'text destroyed.'); this.text = null; })); } } AmapTextService.decorators = [ { type: Injectable } ]; /** @nocollapse */ AmapTextService.ctorParameters = () => [ { type: AMapService }, { type: LoggerService }, { type: NgZone } ]; if (false) { /** * @type {?} * @private */ AmapTextService.prototype.text; /** * @type {?} * @private */ AmapTextService.prototype.text$; /** * @type {?} * @private */ AmapTextService.prototype.amaps; /** * @type {?} * @private */ AmapTextService.prototype.logger; /** * @type {?} * @private */ AmapTextService.prototype.ngZone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC10ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYW1hcC8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvYW1hcC10ZXh0L2FtYXAtdGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7TUFHN0QsR0FBRyxHQUFHLFVBQVU7QUFHdEIsTUFBTSxPQUFPLGVBQWU7Ozs7OztJQUkxQixZQUFvQixLQUFrQixFQUFVLE1BQXFCLEVBQVUsTUFBYztRQUF6RSxVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFGckYsVUFBSyxHQUFHLElBQUksYUFBYSxDQUFZLENBQUMsQ0FBQyxDQUFDO0lBRWdELENBQUM7Ozs7O0lBS2pHLEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7Ozs7OztJQU9ELE1BQU0sQ0FBQyxPQUEwQixFQUFFLFFBQVEsR0FBRyxJQUFJO1FBQ2hELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQzFCLEdBQUc7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2FBQ2pCO1lBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQjs7O1lBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ25CLENBQUMsRUFBQyxDQUNILENBQUM7SUFDSixDQUFDOzs7OztJQUtELE9BQU87UUFDTCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3ZCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNuQixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7OztZQTNDRixVQUFVOzs7O1lBTkYsV0FBVztZQUNYLGFBQWE7WUFKRCxNQUFNOzs7Ozs7O0lBV3pCLCtCQUF3Qjs7Ozs7SUFDeEIsZ0NBQWdEOzs7OztJQUVwQyxnQ0FBMEI7Ozs7O0lBQUUsaUNBQTZCOzs7OztJQUFFLGlDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQU1hcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvYW1hcC5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IEdldHRlciB9IGZyb20gJy4uLy4uL2Jhc2UvaW50ZXJmYWNlcyc7XG5cbmNvbnN0IFRBRyA9ICdBbWFwVGV4dCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBbWFwVGV4dFNlcnZpY2UgaW1wbGVtZW50cyBHZXR0ZXI8QU1hcC5UZXh0PiB7XG4gIHByaXZhdGUgdGV4dDogQU1hcC5UZXh0O1xuICBwcml2YXRlIHRleHQkID0gbmV3IFJlcGxheVN1YmplY3Q8QU1hcC5UZXh0PigxKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFtYXBzOiBBTWFwU2VydmljZSwgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHt9XG5cbiAgLyoqXG4gICAqIOiOt+WPlueCueagh+iusFxuICAgKi9cbiAgZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLnRleHQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIOWIm+W7uueCueagh+iusCBBTWFwLlRleHRcbiAgICogQHBhcmFtIG9wdGlvbnMg6YCJ6aG5XG4gICAqIEBwYXJhbSBhZGRUb01hcCDmmK/lkKbnm7TmjqXliqDov5vlnLDlm75cbiAgICovXG4gIGNyZWF0ZShvcHRpb25zOiBBTWFwLlRleHQuT3B0aW9ucywgYWRkVG9NYXAgPSB0cnVlKSB7XG4gICAgcmV0dXJuIHRoaXMuYW1hcHMuZ2V0KCkucGlwZShcbiAgICAgIG1hcChtID0+IHtcbiAgICAgICAgaWYgKGFkZFRvTWFwKSB7XG4gICAgICAgICAgb3B0aW9ucy5tYXAgPSBtO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGV4dCA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IG5ldyBBTWFwLlRleHQob3B0aW9ucykpO1xuICAgICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ25ldyB0ZXh0IGNyZWF0ZWQuJyk7XG4gICAgICAgIHRoaXMudGV4dCQubmV4dCh0aGlzLnRleHQpO1xuICAgICAgICB0aGlzLnRleHQkLmNvbXBsZXRlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHQ7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIOmUgOavgeeCueagh+iusFxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLmdldCgpLnN1YnNjcmliZShtID0+IHtcbiAgICAgIG0uc2V0TWFwKG51bGwpO1xuICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICd0ZXh0IGRlc3Ryb3llZC4nKTtcbiAgICAgIHRoaXMudGV4dCA9IG51bGw7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==