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]

233 lines 13.6 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 * as tslib_1 from "tslib"; 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 {?} */ var TAG = 'AmapRectangle'; var AmapRectangleService = /** @class */ (function () { function AmapRectangleService(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 {?} */ AmapRectangleService.prototype.get = /** * 获取矩形 * @return {?} */ function () { return this.rectangle$.asObservable(); }; /** * 创建矩形 AMap.Rectangle * @param options 选项 */ /** * 创建矩形 AMap.Rectangle * @param {?} options 选项 * @return {?} */ AmapRectangleService.prototype.create = /** * 创建矩形 AMap.Rectangle * @param {?} options 选项 * @return {?} */ function (options) { var _this = this; return this.amaps.get().pipe(map((/** * @param {?} m * @return {?} */ function (m) { options.map = m; _this.rectangle = _this.ngZone.runOutsideAngular((/** * @return {?} */ function () { return new AMap.Rectangle(options); })); _this.logger.d(TAG, 'new Rectangle created.'); _this.rectangle$.next(_this.rectangle); _this.rectangle$.complete(); return _this.rectangle; }))); }; /** * 销毁矩形 */ /** * 销毁矩形 * @return {?} */ AmapRectangleService.prototype.destroy = /** * 销毁矩形 * @return {?} */ function () { var _this = this; this.get().subscribe((/** * @param {?} m * @return {?} */ function (m) { m.setMap(null); _this.logger.d(TAG, 'Rectangle destroyed.'); _this.rectangle = null; })); }; /** * @return {?} */ AmapRectangleService.prototype.getEditor = /** * @return {?} */ function () { // plugin is loading: return this.editor$.asObservable(); }; /** * 加载编辑插件 */ /** * 加载编辑插件 * @return {?} */ AmapRectangleService.prototype.loadEditor = /** * 加载编辑插件 * @return {?} */ function () { return this.plugins.load('AMap.RectangleEditor'); }; /** * 创建编辑器 */ /** * 创建编辑器 * @return {?} */ AmapRectangleService.prototype.createEditor = /** * 创建编辑器 * @return {?} */ function () { var _this = this; return this.loadEditor().pipe(switchMapTo(zip(this.amaps.get(), this.get())), map((/** * @param {?} __0 * @return {?} */ function (_a) { var _b = tslib_1.__read(_a, 2), m = _b[0], p = _b[1]; _this.editor = _this.ngZone.runOutsideAngular((/** * @return {?} */ function () { 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 开关选项 */ /** * 开关编辑器 * @param {?} v 开关选项 * @return {?} */ AmapRectangleService.prototype.toggleEditor = /** * 开关编辑器 * @param {?} v 开关选项 * @return {?} */ function (v) { if (v && !this.editor) { this.createEditor().subscribe((/** * @param {?} editor * @return {?} */ function (editor) { return editor.open(); })); return; } if (this.editor) { if (v) { this.editor.open(); } else { this.editor.close(); } } }; AmapRectangleService.decorators = [ { type: Injectable } ]; /** @nocollapse */ AmapRectangleService.ctorParameters = function () { return [ { type: AMapService }, { type: LoggerService }, { type: NgZone }, { type: PluginLoaderService } ]; }; return AmapRectangleService; }()); export { AmapRectangleService }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1yZWN0YW5nbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1hbWFwLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy9hbWFwLXJlY3RhbmdsZS9hbWFwLXJlY3RhbmdsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7SUFJbkUsR0FBRyxHQUFHLGVBQWU7QUFFM0I7SUFPRSw4QkFDVSxLQUFrQixFQUNsQixNQUFxQixFQUNyQixNQUFjLEVBQ2QsT0FBNEI7UUFINUIsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQVI5QixlQUFVLEdBQUcsSUFBSSxhQUFhLENBQU0sQ0FBQyxDQUFDLENBQUM7UUFFdkMsWUFBTyxHQUFHLElBQUksYUFBYSxDQUFNLENBQUMsQ0FBQyxDQUFDO0lBT3pDLENBQUM7SUFFSjs7T0FFRzs7Ozs7SUFDSCxrQ0FBRzs7OztJQUFIO1FBQ0UsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7O09BR0c7Ozs7OztJQUNILHFDQUFNOzs7OztJQUFOLFVBQU8sT0FBK0I7UUFBdEMsaUJBV0M7UUFWQyxP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LElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDcEI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNyQjtTQUNGO0lBQ0gsQ0FBQzs7Z0JBOUZGLFVBQVU7Ozs7Z0JBUkYsV0FBVztnQkFDWCxhQUFhO2dCQUpELE1BQU07Z0JBS2xCLG1CQUFtQjs7SUFxRzVCLDJCQUFDO0NBQUEsQUEvRkQsSUErRkM7U0E5Rlksb0JBQW9COzs7Ozs7SUFDL0IseUNBQXVCOzs7OztJQUN2QiwwQ0FBK0M7Ozs7O0lBQy9DLHNDQUFvQjs7Ozs7SUFDcEIsdUNBQTRDOzs7OztJQUcxQyxxQ0FBMEI7Ozs7O0lBQzFCLHNDQUE2Qjs7Ozs7SUFDN0Isc0NBQXNCOzs7OztJQUN0Qix1Q0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXBUbyB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFNYXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2FtYXAuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQbHVnaW5Mb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3BsdWdpbi1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBHZXR0ZXIgfSBmcm9tICcuLi8uLi9iYXNlL2ludGVyZmFjZXMnO1xuZGVjbGFyZSBjb25zdCBBTWFwOiBhbnk7XG5cbmNvbnN0IFRBRyA9ICdBbWFwUmVjdGFuZ2xlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFtYXBSZWN0YW5nbGVTZXJ2aWNlIGltcGxlbWVudHMgR2V0dGVyPEFNYXAuUmVjdGFuZ2xlPiB7XG4gIHByaXZhdGUgcmVjdGFuZ2xlOiBhbnk7XG4gIHByaXZhdGUgcmVjdGFuZ2xlJCA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueT4oMSk7XG4gIHByaXZhdGUgZWRpdG9yOiBhbnk7XG4gIHByaXZhdGUgZWRpdG9yJCA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueT4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbWFwczogQU1hcFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHBsdWdpbnM6IFBsdWdpbkxvYWRlclNlcnZpY2UsXG4gICkge31cblxuICAvKipcbiAgICog6I635Y+W55+p5b2iXG4gICAqL1xuICBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVjdGFuZ2xlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDliJvlu7rnn6nlvaIgQU1hcC5SZWN0YW5nbGVcbiAgICogQHBhcmFtIG9wdGlvbnMg6YCJ6aG5XG4gICAqL1xuICBjcmVhdGUob3B0aW9uczogQU1hcC5SZWN0YW5nbGUuT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmFtYXBzLmdldCgpLnBpcGUoXG4gICAgICBtYXAobSA9PiB7XG4gICAgICAgIG9wdGlvbnMubWFwID0gbTtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUgPSB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBuZXcgQU1hcC5SZWN0YW5nbGUob3B0aW9ucykpO1xuICAgICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ25ldyBSZWN0YW5nbGUgY3JlYXRlZC4nKTtcbiAgICAgICAgdGhpcy5yZWN0YW5nbGUkLm5leHQodGhpcy5yZWN0YW5nbGUpO1xuICAgICAgICB0aGlzLnJlY3RhbmdsZSQuY29tcGxldGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVjdGFuZ2xlO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDplIDmr4Hnn6nlvaJcbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5nZXQoKS5zdWJzY3JpYmUobSA9PiB7XG4gICAgICBtLnNldE1hcChudWxsKTtcbiAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnUmVjdGFuZ2xlIGRlc3Ryb3llZC4nKTtcbiAgICAgIHRoaXMucmVjdGFuZ2xlID0gbnVsbDtcbiAgICB9KTtcbiAgfVxuXG4gIGdldEVkaXRvcigpIHtcbiAgICAvLyBwbHVnaW4gaXMgbG9hZGluZzpcbiAgICByZXR1cm4gdGhpcy5lZGl0b3IkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIOWKoOi9vee8lui+keaPkuS7tlxuICAgKi9cbiAgbG9hZEVkaXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy5wbHVnaW5zLmxvYWQoJ0FNYXAuUmVjdGFuZ2xlRWRpdG9yJyk7XG4gIH1cblxuICAvKipcbiAgICog5Yib5bu657yW6L6R5ZmoXG4gICAqL1xuICBjcmVhdGVFZGl0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMubG9hZEVkaXRvcigpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXBUbyh6aXAodGhpcy5hbWFwcy5nZXQoKSwgdGhpcy5nZXQoKSkpLFxuICAgICAgbWFwKChbbSwgcF0pID0+IHtcbiAgICAgICAgdGhpcy5lZGl0b3IgPSB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBuZXcgQU1hcC5SZWN0YW5nbGVFZGl0b3IobSwgcCkpO1xuICAgICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ25ldyBSZWN0YW5nbGVFZGl0b3IgY3JlYXRlZC4nKTtcbiAgICAgICAgdGhpcy5lZGl0b3IkLm5leHQodGhpcy5lZGl0b3IpO1xuICAgICAgICB0aGlzLmVkaXRvciQuY29tcGxldGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDlvIDlhbPnvJbovpHlmahcbiAgICogQHBhcmFtIHYg5byA5YWz6YCJ6aG5XG4gICAqL1xuICB0b2dnbGVFZGl0b3IodjogYm9vbGVhbikge1xuICAgIGlmICh2ICYmICF0aGlzLmVkaXRvcikge1xuICAgICAgdGhpcy5jcmVhdGVFZGl0b3IoKS5zdWJzY3JpYmUoZWRpdG9yID0+IGVkaXRvci5vcGVuKCkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmVkaXRvcikge1xuICAgICAgaWYgKHYpIHtcbiAgICAgICAgdGhpcy5lZGl0b3Iub3BlbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lZGl0b3IuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==