ngx-amap
Version:
[][npm-badge-url] [][npm-badge-url] [][ci-url]
233 lines • 13.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: directives/amap-ellipse/amap-ellipse.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 = 'AmapEllipse';
var AmapEllipseService = /** @class */ (function () {
function AmapEllipseService(amaps, logger, ngZone, plugins) {
this.amaps = amaps;
this.logger = logger;
this.ngZone = ngZone;
this.plugins = plugins;
this.ellipse$ = new ReplaySubject(1);
this.editor$ = new ReplaySubject(1);
}
/**
* 获取椭圆
*/
/**
* 获取椭圆
* @return {?}
*/
AmapEllipseService.prototype.get = /**
* 获取椭圆
* @return {?}
*/
function () {
return this.ellipse$.asObservable();
};
/**
* 创建椭圆 AMap.Ellipse
* @param options 选项
*/
/**
* 创建椭圆 AMap.Ellipse
* @param {?} options 选项
* @return {?}
*/
AmapEllipseService.prototype.create = /**
* 创建椭圆 AMap.Ellipse
* @param {?} options 选项
* @return {?}
*/
function (options) {
var _this = this;
return this.amaps.get().pipe(map((/**
* @param {?} m
* @return {?}
*/
function (m) {
options.map = m;
_this.ellipse = _this.ngZone.runOutsideAngular((/**
* @return {?}
*/
function () { return new AMap.Ellipse(options); }));
_this.logger.d(TAG, 'new Ellipse created.');
_this.ellipse$.next(_this.ellipse);
_this.ellipse$.complete();
return _this.ellipse;
})));
};
/**
* 销毁椭圆
*/
/**
* 销毁椭圆
* @return {?}
*/
AmapEllipseService.prototype.destroy = /**
* 销毁椭圆
* @return {?}
*/
function () {
var _this = this;
this.get().subscribe((/**
* @param {?} m
* @return {?}
*/
function (m) {
m.setMap(null);
_this.logger.d(TAG, 'Ellipse destroyed.');
_this.ellipse = null;
}));
};
/**
* @return {?}
*/
AmapEllipseService.prototype.getEditor = /**
* @return {?}
*/
function () {
// plugin is loading:
return this.editor$.asObservable();
};
/**
* 加载编辑插件
*/
/**
* 加载编辑插件
* @return {?}
*/
AmapEllipseService.prototype.loadEditor = /**
* 加载编辑插件
* @return {?}
*/
function () {
return this.plugins.load('AMap.EllipseEditor');
};
/**
* 创建编辑器
*/
/**
* 创建编辑器
* @return {?}
*/
AmapEllipseService.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.EllipseEditor(m, p); }));
_this.logger.d(TAG, 'new EllipseEditor created.');
_this.editor$.next(_this.editor);
_this.editor$.complete();
return _this.editor;
})));
};
/**
* 开关编辑器
* @param v 开关选项
*/
/**
* 开关编辑器
* @param {?} v 开关选项
* @return {?}
*/
AmapEllipseService.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();
}
}
};
AmapEllipseService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
AmapEllipseService.ctorParameters = function () { return [
{ type: AMapService },
{ type: LoggerService },
{ type: NgZone },
{ type: PluginLoaderService }
]; };
return AmapEllipseService;
}());
export { AmapEllipseService };
if (false) {
/**
* @type {?}
* @private
*/
AmapEllipseService.prototype.ellipse;
/**
* @type {?}
* @private
*/
AmapEllipseService.prototype.ellipse$;
/**
* @type {?}
* @private
*/
AmapEllipseService.prototype.editor;
/**
* @type {?}
* @private
*/
AmapEllipseService.prototype.editor$;
/**
* @type {?}
* @private
*/
AmapEllipseService.prototype.amaps;
/**
* @type {?}
* @private
*/
AmapEllipseService.prototype.logger;
/**
* @type {?}
* @private
*/
AmapEllipseService.prototype.ngZone;
/**
* @type {?}
* @private
*/
AmapEllipseService.prototype.plugins;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1lbGxpcHNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYW1hcC8iLCJzb3VyY2VzIjpbImRpcmVjdGl2ZXMvYW1hcC1lbGxpcHNlL2FtYXAtZWxsaXBzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7SUFJbkUsR0FBRyxHQUFHLGFBQWE7QUFFekI7SUFPRSw0QkFDVSxLQUFrQixFQUNsQixNQUFxQixFQUNyQixNQUFjLEVBQ2QsT0FBNEI7UUFINUIsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQVI5QixhQUFRLEdBQUcsSUFBSSxhQUFhLENBQU0sQ0FBQyxDQUFDLENBQUM7UUFFckMsWUFBTyxHQUFHLElBQUksYUFBYSxDQUFNLENBQUMsQ0FBQyxDQUFDO0lBT3pDLENBQUM7SUFFSjs7T0FFRzs7Ozs7SUFDSCxnQ0FBRzs7OztJQUFIO1FBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7Ozs7OztJQUNILG1DQUFNOzs7OztJQUFOLFVBQU8sT0FBNkI7UUFBcEMsaUJBV0M7UUFWQyxPQUFPLElB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Q0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDcEI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNyQjtTQUNGO0lBQ0gsQ0FBQzs7Z0JBOUZGLFVBQVU7Ozs7Z0JBUkYsV0FBVztnQkFDWCxhQUFhO2dCQUpELE1BQU07Z0JBS2xCLG1CQUFtQjs7SUFxRzVCLHlCQUFDO0NBQUEsQUEvRkQsSUErRkM7U0E5Rlksa0JBQWtCOzs7Ozs7SUFDN0IscUNBQXFCOzs7OztJQUNyQixzQ0FBNkM7Ozs7O0lBQzdDLG9DQUFvQjs7Ozs7SUFDcEIscUNBQTRDOzs7OztJQUcxQyxtQ0FBMEI7Ozs7O0lBQzFCLG9DQUE2Qjs7Ozs7SUFDN0Isb0NBQXNCOzs7OztJQUN0QixxQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXBUbyB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFNYXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2FtYXAuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQbHVnaW5Mb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3BsdWdpbi1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBXaXRoRWRpdG9yIH0gZnJvbSAnLi4vLi4vYmFzZS9pbnRlcmZhY2VzJztcbmRlY2xhcmUgY29uc3QgQU1hcDogYW55O1xuXG5jb25zdCBUQUcgPSAnQW1hcEVsbGlwc2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQW1hcEVsbGlwc2VTZXJ2aWNlIGltcGxlbWVudHMgV2l0aEVkaXRvcjxBTWFwLkVsbGlwc2UsIGFueT4ge1xuICBwcml2YXRlIGVsbGlwc2U6IGFueTtcbiAgcHJpdmF0ZSBlbGxpcHNlJCA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueT4oMSk7XG4gIHByaXZhdGUgZWRpdG9yOiBhbnk7XG4gIHByaXZhdGUgZWRpdG9yJCA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueT4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbWFwczogQU1hcFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHBsdWdpbnM6IFBsdWdpbkxvYWRlclNlcnZpY2UsXG4gICkge31cblxuICAvKipcbiAgICog6I635Y+W5qSt5ZyGXG4gICAqL1xuICBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxsaXBzZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICog5Yib5bu65qSt5ZyGIEFNYXAuRWxsaXBzZVxuICAgKiBAcGFyYW0gb3B0aW9ucyDpgInpoblcbiAgICovXG4gIGNyZWF0ZShvcHRpb25zOiBBTWFwLkVsbGlwc2UuT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmFtYXBzLmdldCgpLnBpcGUoXG4gICAgICBtYXAobSA9PiB7XG4gICAgICAgIG9wdGlvbnMubWFwID0gbTtcbiAgICAgICAgdGhpcy5lbGxpcHNlID0gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gbmV3IEFNYXAuRWxsaXBzZShvcHRpb25zKSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnbmV3IEVsbGlwc2UgY3JlYXRlZC4nKTtcbiAgICAgICAgdGhpcy5lbGxpcHNlJC5uZXh0KHRoaXMuZWxsaXBzZSk7XG4gICAgICAgIHRoaXMuZWxsaXBzZSQuY29tcGxldGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxsaXBzZTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICog6ZSA5q+B5qSt5ZyGXG4gICAqL1xuICBkZXN0cm95KCkge1xuICAgIHRoaXMuZ2V0KCkuc3Vic2NyaWJlKG0gPT4ge1xuICAgICAgbS5zZXRNYXAobnVsbCk7XG4gICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ0VsbGlwc2UgZGVzdHJveWVkLicpO1xuICAgICAgdGhpcy5lbGxpcHNlID0gbnVsbDtcbiAgICB9KTtcbiAgfVxuXG4gIGdldEVkaXRvcigpIHtcbiAgICAvLyBwbHVnaW4gaXMgbG9hZGluZzpcbiAgICByZXR1cm4gdGhpcy5lZGl0b3IkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIOWKoOi9vee8lui+keaPkuS7tlxuICAgKi9cbiAgbG9hZEVkaXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy5wbHVnaW5zLmxvYWQoJ0FNYXAuRWxsaXBzZUVkaXRvcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIOWIm+W7uue8lui+keWZqFxuICAgKi9cbiAgY3JlYXRlRWRpdG9yKCkge1xuICAgIHJldHVybiB0aGlzLmxvYWRFZGl0b3IoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwVG8oemlwKHRoaXMuYW1hcHMuZ2V0KCksIHRoaXMuZ2V0KCkpKSxcbiAgICAgIG1hcCgoW20sIHBdKSA9PiB7XG4gICAgICAgIHRoaXMuZWRpdG9yID0gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gbmV3IEFNYXAuRWxsaXBzZUVkaXRvcihtLCBwKSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnbmV3IEVsbGlwc2VFZGl0b3IgY3JlYXRlZC4nKTtcbiAgICAgICAgdGhpcy5lZGl0b3IkLm5leHQodGhpcy5lZGl0b3IpO1xuICAgICAgICB0aGlzLmVkaXRvciQuY29tcGxldGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDlvIDlhbPnvJbovpHlmahcbiAgICogQHBhcmFtIHYg5byA5YWz6YCJ6aG5XG4gICAqL1xuICB0b2dnbGVFZGl0b3IodjogYm9vbGVhbikge1xuICAgIGlmICh2ICYmICF0aGlzLmVkaXRvcikge1xuICAgICAgdGhpcy5jcmVhdGVFZGl0b3IoKS5zdWJzY3JpYmUoZWRpdG9yID0+IGVkaXRvci5vcGVuKCkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmVkaXRvcikge1xuICAgICAgaWYgKHYpIHtcbiAgICAgICAgdGhpcy5lZGl0b3Iub3BlbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lZGl0b3IuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==