ngx-amap
Version:
[][npm-badge-url] [][npm-badge-url] [][ci-url]
181 lines • 11.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: directives/amap-tool-bar/amap-tool-bar.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 } from 'rxjs/operators';
import { AMapService } from '../../shared/amap.service';
import { PluginLoaderService } from '../../shared/plugin-loader.service';
import { LoggerService } from '../../shared/logger/logger.service';
/** @type {?} */
const TAG = 'AmapToolBar';
export var AMapToolBar;
(function (AMapToolBar) {
/**
* @record
*/
function Options() { }
AMapToolBar.Options = Options;
if (false) {
/**
* 相对于地图容器左上角的偏移量
* @type {?|undefined}
*/
Options.prototype.offset;
/**
* 控件停靠位置
* LT:左上角;
* RT:右上角;
* LB:左下角;
* RB:右下角;
* @type {?|undefined}
*/
Options.prototype.position;
/**
* 标尺键盘是否可见
* @type {?|undefined}
*/
Options.prototype.ruler;
/**
* 定位失败后,是否开启IP定位
* @type {?|undefined}
*/
Options.prototype.noIpLocate;
/**
* 是否显示定位按钮
* @type {?|undefined}
*/
Options.prototype.locate;
/**
* 是否使用精简模式
* @type {?|undefined}
*/
Options.prototype.liteStyle;
/**
* 方向键盘是否可见
* @type {?|undefined}
*/
Options.prototype.direction;
/**
* 是否自动定位,即地图初始化加载完成后,是否自动定位的用户所在地,仅在支持HTML5的浏览器中有效
* @type {?|undefined}
*/
Options.prototype.autoPosition;
/**
* 自定义定位图标,值为Marker对象
* @type {?|undefined}
*/
Options.prototype.locationMarker;
/**
* 是否使用高德定位sdk用来辅助优化定位效果
* @type {?|undefined}
*/
Options.prototype.useNative;
/** @type {?|undefined} */
Options.prototype.timeout;
}
})(AMapToolBar || (AMapToolBar = {}));
export class AmapToolBarService {
/**
* @param {?} amaps
* @param {?} plugin
* @param {?} logger
* @param {?} ngZone
*/
constructor(amaps, plugin, logger, ngZone) {
this.amaps = amaps;
this.plugin = plugin;
this.logger = logger;
this.ngZone = ngZone;
this.toolBar$ = new ReplaySubject(1);
}
/**
* 获取工具条
* @return {?}
*/
get() {
return this.toolBar$.asObservable();
}
/**
* 创建工具条 AMap.ToolBar
* @param {?} options 选项
* @return {?}
*/
create(options) {
return zip(this.amaps.get(), this.plugin.load('AMap.ToolBar')).pipe(map((/**
* @param {?} __0
* @return {?}
*/
([m]) => {
this.toolBar = this.ngZone.runOutsideAngular((/**
* @return {?}
*/
() => new AMap.ToolBar(options)));
this.logger.d(TAG, 'new toolBar created.');
m.addControl(this.toolBar);
this.toolBar$.next(this.toolBar);
this.toolBar$.complete();
return this.toolBar;
})));
}
/**
* 销毁工具条
* @return {?}
*/
destroy() {
zip(this.amaps.get(), this.get()).subscribe((/**
* @param {?} __0
* @return {?}
*/
([m, toolBar]) => {
m.removeControl(toolBar);
this.logger.d(TAG, 'toolBar destroyed.');
this.toolBar = null;
}));
}
}
AmapToolBarService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
AmapToolBarService.ctorParameters = () => [
{ type: AMapService },
{ type: PluginLoaderService },
{ type: LoggerService },
{ type: NgZone }
];
if (false) {
/**
* @type {?}
* @private
*/
AmapToolBarService.prototype.toolBar;
/**
* @type {?}
* @private
*/
AmapToolBarService.prototype.toolBar$;
/**
* @type {?}
* @private
*/
AmapToolBarService.prototype.amaps;
/**
* @type {?}
* @private
*/
AmapToolBarService.prototype.plugin;
/**
* @type {?}
* @private
*/
AmapToolBarService.prototype.logger;
/**
* @type {?}
* @private
*/
AmapToolBarService.prototype.ngZone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC10b29sLWJhci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWFtYXAvIiwic291cmNlcyI6WyJkaXJlY3RpdmVzL2FtYXAtdG9vbC1iYXIvYW1hcC10b29sLWJhci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7O01BSTdELEdBQUcsR0FBRyxhQUFhO0FBRXpCLE1BQU0sS0FBVyxXQUFXLENBa0QzQjtBQWxERCxXQUFpQixXQUFXOzs7O0lBQzFCLHNCQStDQzs7Ozs7OztRQTNDQyx5QkFBb0I7Ozs7Ozs7OztRQVFwQiwyQkFBb0I7Ozs7O1FBSXBCLHdCQUFnQjs7Ozs7UUFJaEIsNkJBQXFCOzs7OztRQUlyQix5QkFBaUI7Ozs7O1FBSWpCLDRCQUFvQjs7Ozs7UUFJcEIsNEJBQW9COzs7OztRQUlwQiwrQkFBdUI7Ozs7O1FBSXZCLGlDQUE2Qjs7Ozs7UUFJN0IsNEJBQW9COztRQUVwQiwwQkFBaUI7O0FBR3JCLENBQUMsRUFsRGdCLFdBQVcsS0FBWCxXQUFXLFFBa0QzQjtBQUdELE1BQU0sT0FBTyxrQkFBa0I7Ozs7Ozs7SUFJN0IsWUFDVSxLQUFrQixFQUNsQixNQUEyQixFQUMzQixNQUFxQixFQUNyQixNQUFjO1FBSGQsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFOaEIsYUFBUSxHQUFHLElBQUksYUFBYSxDQUFNLENBQUMsQ0FBQyxDQUFDO0lBTzFDLENBQUM7Ozs7O0lBS0osR0FBRztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzs7Ozs7SUFNRCxNQUFNLENBQUMsT0FBNEI7UUFDakMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDakUsR0FBRzs7OztRQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQjs7O1lBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUM7WUFDOUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3RCLENBQUMsRUFBQyxDQUNILENBQUM7SUFDSixDQUFDOzs7OztJQUtELE9BQU87UUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQzNELENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDdEIsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7WUE3Q0YsVUFBVTs7OztZQTVERixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGFBQWE7WUFMRCxNQUFNOzs7Ozs7O0lBaUV6QixxQ0FBcUI7Ozs7O0lBQ3JCLHNDQUE2Qzs7Ozs7SUFHM0MsbUNBQTBCOzs7OztJQUMxQixvQ0FBbUM7Ozs7O0lBQ25DLG9DQUE2Qjs7Ozs7SUFDN0Isb0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCB6aXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFNYXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2FtYXAuc2VydmljZSc7XG5pbXBvcnQgeyBQbHVnaW5Mb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3BsdWdpbi1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBHZXR0ZXIgfSBmcm9tICcuLi8uLi9iYXNlL2ludGVyZmFjZXMnO1xuZGVjbGFyZSBjb25zdCBBTWFwOiBhbnk7XG5cbmNvbnN0IFRBRyA9ICdBbWFwVG9vbEJhcic7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQU1hcFRvb2xCYXIge1xuICBleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIOebuOWvueS6juWcsOWbvuWuueWZqOW3puS4iuinkueahOWBj+enu+mHj1xuICAgICAqL1xuICAgIG9mZnNldD86IEFNYXAuUGl4ZWw7XG4gICAgLyoqXG4gICAgICog5o6n5Lu25YGc6Z2g5L2N572uXG4gICAgICogTFQ65bem5LiK6KeSO1xuICAgICAqIFJUOuWPs+S4iuinkjtcbiAgICAgKiBMQjrlt6bkuIvop5I7XG4gICAgICogUkI65Y+z5LiL6KeSO1xuICAgICAqL1xuICAgIHBvc2l0aW9uPzogUG9zaXRpb247XG4gICAgLyoqXG4gICAgICog5qCH5bC66ZSu55uY5piv5ZCm5Y+v6KeBXG4gICAgICovXG4gICAgcnVsZXI/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIOWumuS9jeWksei0peWQju+8jOaYr+WQpuW8gOWQr0lQ5a6a5L2NXG4gICAgICovXG4gICAgbm9JcExvY2F0ZT86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICog5piv5ZCm5pi+56S65a6a5L2N5oyJ6ZKuXG4gICAgICovXG4gICAgbG9jYXRlPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiDmmK/lkKbkvb/nlKjnsr7nroDmqKHlvI9cbiAgICAgKi9cbiAgICBsaXRlU3R5bGU/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIOaWueWQkemUruebmOaYr+WQpuWPr+ingVxuICAgICAqL1xuICAgIGRpcmVjdGlvbj86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICog5piv5ZCm6Ieq5Yqo5a6a5L2N77yM5Y2z5Zyw5Zu+5Yid5aeL5YyW5Yqg6L295a6M5oiQ5ZCO77yM5piv5ZCm6Ieq5Yqo5a6a5L2N55qE55So5oi35omA5Zyo5Zyw77yM5LuF5Zyo5pSv5oyBSFRNTDXnmoTmtY/op4jlmajkuK3mnInmlYhcbiAgICAgKi9cbiAgICBhdXRvUG9zaXRpb24/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieWumuS9jeWbvuagh++8jOWAvOS4uk1hcmtlcuWvueixoVxuICAgICAqL1xuICAgIGxvY2F0aW9uTWFya2VyPzogQU1hcC5NYXJrZXI7XG4gICAgLyoqXG4gICAgICog5piv5ZCm5L2/55So6auY5b635a6a5L2Nc2Rr55So5p2l6L6F5Yqp5LyY5YyW5a6a5L2N5pWI5p6cXG4gICAgICovXG4gICAgdXNlTmF0aXZlPzogYm9vbGVhbjtcbiAgICAvLyBpbnRlcm5hbFxuICAgIHRpbWVvdXQ/OiBudW1iZXI7XG4gIH1cbiAgZXhwb3J0IHR5cGUgUG9zaXRpb24gPSAnTFQnIHwgJ1JUJyB8ICdMQicgfCAnUkInO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQW1hcFRvb2xCYXJTZXJ2aWNlIGltcGxlbWVudHMgR2V0dGVyPGFueT4ge1xuICBwcml2YXRlIHRvb2xCYXI6IGFueTtcbiAgcHJpdmF0ZSB0b29sQmFyJCA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueT4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbWFwczogQU1hcFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbHVnaW46IFBsdWdpbkxvYWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiDojrflj5blt6XlhbfmnaFcbiAgICovXG4gIGdldCgpIHtcbiAgICByZXR1cm4gdGhpcy50b29sQmFyJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDliJvlu7rlt6XlhbfmnaEgQU1hcC5Ub29sQmFyXG4gICAqIEBwYXJhbSBvcHRpb25zIOmAiemhuVxuICAgKi9cbiAgY3JlYXRlKG9wdGlvbnM6IEFNYXBUb29sQmFyLk9wdGlvbnMpIHtcbiAgICByZXR1cm4gemlwKHRoaXMuYW1hcHMuZ2V0KCksIHRoaXMucGx1Z2luLmxvYWQoJ0FNYXAuVG9vbEJhcicpKS5waXBlKFxuICAgICAgbWFwKChbbV0pID0+IHtcbiAgICAgICAgdGhpcy50b29sQmFyID0gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gbmV3IEFNYXAuVG9vbEJhcihvcHRpb25zKSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnbmV3IHRvb2xCYXIgY3JlYXRlZC4nKTtcbiAgICAgICAgbS5hZGRDb250cm9sKHRoaXMudG9vbEJhcik7XG4gICAgICAgIHRoaXMudG9vbEJhciQubmV4dCh0aGlzLnRvb2xCYXIpO1xuICAgICAgICB0aGlzLnRvb2xCYXIkLmNvbXBsZXRlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnRvb2xCYXI7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIOmUgOavgeW3peWFt+adoVxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICB6aXAodGhpcy5hbWFwcy5nZXQoKSwgdGhpcy5nZXQoKSkuc3Vic2NyaWJlKChbbSwgdG9vbEJhcl0pID0+IHtcbiAgICAgIG0ucmVtb3ZlQ29udHJvbCh0b29sQmFyKTtcbiAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAndG9vbEJhciBkZXN0cm95ZWQuJyk7XG4gICAgICB0aGlzLnRvb2xCYXIgPSBudWxsO1xuICAgIH0pO1xuICB9XG59XG4iXX0=