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]

183 lines 12 kB
/** * @fileoverview added by tsickle * Generated from: directives/amap-rectangle/amap-rectangle.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable, NgZone } from '@angular/core'; import { ReplaySubject, zip } from 'rxjs'; import { map, switchMapTo } from 'rxjs/operators'; import { AMapService } from '../../shared/amap.service'; import { LoggerService } from '../../shared/logger/logger.service'; import { PluginLoaderService } from '../../shared/plugin-loader.service'; /** @type {?} */ const TAG = 'AmapRectangle'; export class AmapRectangleService { /** * @param {?} amaps * @param {?} logger * @param {?} ngZone * @param {?} plugins */ constructor(amaps, logger, ngZone, plugins) { this.amaps = amaps; this.logger = logger; this.ngZone = ngZone; this.plugins = plugins; this.rectangle$ = new ReplaySubject(1); this.editor$ = new ReplaySubject(1); } /** * 获取矩形 * @return {?} */ get() { return this.rectangle$.asObservable(); } /** * 创建矩形 AMap.Rectangle * @param {?} options 选项 * @return {?} */ create(options) { return this.amaps.get().pipe(map((/** * @param {?} m * @return {?} */ m => { options.map = m; this.rectangle = this.ngZone.runOutsideAngular((/** * @return {?} */ () => new AMap.Rectangle(options))); this.logger.d(TAG, 'new Rectangle created.'); this.rectangle$.next(this.rectangle); this.rectangle$.complete(); return this.rectangle; }))); } /** * 销毁矩形 * @return {?} */ destroy() { this.get().subscribe((/** * @param {?} m * @return {?} */ m => { m.setMap(null); this.logger.d(TAG, 'Rectangle destroyed.'); this.rectangle = null; })); } /** * @return {?} */ getEditor() { // plugin is loading: return this.editor$.asObservable(); } /** * 加载编辑插件 * @return {?} */ loadEditor() { return this.plugins.load('AMap.RectangleEditor'); } /** * 创建编辑器 * @return {?} */ createEditor() { return this.loadEditor().pipe(switchMapTo(zip(this.amaps.get(), this.get())), map((/** * @param {?} __0 * @return {?} */ ([m, p]) => { this.editor = this.ngZone.runOutsideAngular((/** * @return {?} */ () => new AMap.RectangleEditor(m, p))); this.logger.d(TAG, 'new RectangleEditor created.'); this.editor$.next(this.editor); this.editor$.complete(); return this.editor; }))); } /** * 开关编辑器 * @param {?} v 开关选项 * @return {?} */ toggleEditor(v) { if (v && !this.editor) { this.createEditor().subscribe((/** * @param {?} editor * @return {?} */ editor => editor.open())); return; } if (this.editor) { if (v) { this.editor.open(); } else { this.editor.close(); } } } } AmapRectangleService.decorators = [ { type: Injectable } ]; /** @nocollapse */ AmapRectangleService.ctorParameters = () => [ { type: AMapService }, { type: LoggerService }, { type: NgZone }, { type: PluginLoaderService } ]; if (false) { /** * @type {?} * @private */ AmapRectangleService.prototype.rectangle; /** * @type {?} * @private */ AmapRectangleService.prototype.rectangle$; /** * @type {?} * @private */ AmapRectangleService.prototype.editor; /** * @type {?} * @private */ AmapRectangleService.prototype.editor$; /** * @type {?} * @private */ AmapRectangleService.prototype.amaps; /** * @type {?} * @private */ AmapRectangleService.prototype.logger; /** * @type {?} * @private */ AmapRectangleService.prototype.ngZone; /** * @type {?} * @private */ AmapRectangleService.prototype.plugins; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1yZWN0YW5nbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1hbWFwLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy9hbWFwLXJlY3RhbmdsZS9hbWFwLXJlY3RhbmdsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztNQUluRSxHQUFHLEdBQUcsZUFBZTtBQUczQixNQUFNLE9BQU8sb0JBQW9COzs7Ozs7O0lBTS9CLFlBQ1UsS0FBa0IsRUFDbEIsTUFBcUIsRUFDckIsTUFBYyxFQUNkLE9BQTRCO1FBSDVCLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFSOUIsZUFBVSxHQUFHLElBQUksYUFBYSxDQUFNLENBQUMsQ0FBQyxDQUFDO1FBRXZDLFlBQU8sR0FBRyxJQUFJLGFBQWEsQ0FBTSxDQUFDLENBQUMsQ0FBQztJQU96QyxDQUFDOzs7OztJQUtKLEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQzs7Ozs7O0lBTUQsTUFBTSxDQUFDLE9BQStCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVB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bEIsbUJBQW1COzs7Ozs7O0lBUTFCLHlDQUF1Qjs7Ozs7SUFDdkIsMENBQStDOzs7OztJQUMvQyxzQ0FBb0I7Ozs7O0lBQ3BCLHVDQUE0Qzs7Ozs7SUFHMUMscUNBQTBCOzs7OztJQUMxQixzQ0FBNkI7Ozs7O0lBQzdCLHNDQUFzQjs7Ozs7SUFDdEIsdUNBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCB6aXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwVG8gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBTWFwU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9hbWFwLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGx1Z2luTG9hZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9wbHVnaW4tbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2V0dGVyIH0gZnJvbSAnLi4vLi4vYmFzZS9pbnRlcmZhY2VzJztcbmRlY2xhcmUgY29uc3QgQU1hcDogYW55O1xuXG5jb25zdCBUQUcgPSAnQW1hcFJlY3RhbmdsZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBbWFwUmVjdGFuZ2xlU2VydmljZSBpbXBsZW1lbnRzIEdldHRlcjxBTWFwLlJlY3RhbmdsZT4ge1xuICBwcml2YXRlIHJlY3RhbmdsZTogYW55O1xuICBwcml2YXRlIHJlY3RhbmdsZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxhbnk+KDEpO1xuICBwcml2YXRlIGVkaXRvcjogYW55O1xuICBwcml2YXRlIGVkaXRvciQgPSBuZXcgUmVwbGF5U3ViamVjdDxhbnk+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYW1hcHM6IEFNYXBTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBwbHVnaW5zOiBQbHVnaW5Mb2FkZXJTZXJ2aWNlLFxuICApIHt9XG5cbiAgLyoqXG4gICAqIOiOt+WPluefqeW9olxuICAgKi9cbiAgZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLnJlY3RhbmdsZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICog5Yib5bu655+p5b2iIEFNYXAuUmVjdGFuZ2xlXG4gICAqIEBwYXJhbSBvcHRpb25zIOmAiemhuVxuICAgKi9cbiAgY3JlYXRlKG9wdGlvbnM6IEFNYXAuUmVjdGFuZ2xlLk9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5hbWFwcy5nZXQoKS5waXBlKFxuICAgICAgbWFwKG0gPT4ge1xuICAgICAgICBvcHRpb25zLm1hcCA9IG07XG4gICAgICAgIHRoaXMucmVjdGFuZ2xlID0gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gbmV3IEFNYXAuUmVjdGFuZ2xlKG9wdGlvbnMpKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICduZXcgUmVjdGFuZ2xlIGNyZWF0ZWQuJyk7XG4gICAgICAgIHRoaXMucmVjdGFuZ2xlJC5uZXh0KHRoaXMucmVjdGFuZ2xlKTtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUkLmNvbXBsZXRlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnJlY3RhbmdsZTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICog6ZSA5q+B55+p5b2iXG4gICAqL1xuICBkZXN0cm95KCkge1xuICAgIHRoaXMuZ2V0KCkuc3Vic2NyaWJlKG0gPT4ge1xuICAgICAgbS5zZXRNYXAobnVsbCk7XG4gICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ1JlY3RhbmdsZSBkZXN0cm95ZWQuJyk7XG4gICAgICB0aGlzLnJlY3RhbmdsZSA9IG51bGw7XG4gICAgfSk7XG4gIH1cblxuICBnZXRFZGl0b3IoKSB7XG4gICAgLy8gcGx1Z2luIGlzIGxvYWRpbmc6XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDliqDovb3nvJbovpHmj5Lku7ZcbiAgICovXG4gIGxvYWRFZGl0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMucGx1Z2lucy5sb2FkKCdBTWFwLlJlY3RhbmdsZUVkaXRvcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIOWIm+W7uue8lui+keWZqFxuICAgKi9cbiAgY3JlYXRlRWRpdG9yKCkge1xuICAgIHJldHVybiB0aGlzLmxvYWRFZGl0b3IoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwVG8oemlwKHRoaXMuYW1hcHMuZ2V0KCksIHRoaXMuZ2V0KCkpKSxcbiAgICAgIG1hcCgoW20sIHBdKSA9PiB7XG4gICAgICAgIHRoaXMuZWRpdG9yID0gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gbmV3IEFNYXAuUmVjdGFuZ2xlRWRpdG9yKG0sIHApKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICduZXcgUmVjdGFuZ2xlRWRpdG9yIGNyZWF0ZWQuJyk7XG4gICAgICAgIHRoaXMuZWRpdG9yJC5uZXh0KHRoaXMuZWRpdG9yKTtcbiAgICAgICAgdGhpcy5lZGl0b3IkLmNvbXBsZXRlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRvcjtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICog5byA5YWz57yW6L6R5ZmoXG4gICAqIEBwYXJhbSB2IOW8gOWFs+mAiemhuVxuICAgKi9cbiAgdG9nZ2xlRWRpdG9yKHY6IGJvb2xlYW4pIHtcbiAgICBpZiAodiAmJiAhdGhpcy5lZGl0b3IpIHtcbiAgICAgIHRoaXMuY3JlYXRlRWRpdG9yKCkuc3Vic2NyaWJlKGVkaXRvciA9PiBlZGl0b3Iub3BlbigpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lZGl0b3IpIHtcbiAgICAgIGlmICh2KSB7XG4gICAgICAgIHRoaXMuZWRpdG9yLm9wZW4oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZWRpdG9yLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=