ngx-amap
Version:
[][npm-badge-url] [][npm-badge-url] [][ci-url]
105 lines • 6.39 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: shared/amap.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 { AMapLoaderService } from './amap-loader.service';
import { LoggerService } from './logger/logger.service';
/** @type {?} */
const TAG = 'AMap';
export class AMapService {
/**
* @param {?} loader
* @param {?} logger
* @param {?} ngZone
*/
constructor(loader, logger, ngZone) {
this.loader = loader;
this.logger = logger;
this.ngZone = ngZone;
this.map$ = new ReplaySubject();
}
/**
* 获取地图对象 AMap.Map
* @return {?}
*/
get() {
return this.map$.asObservable();
}
/**
* 创建地图对象 AMap.Map
* @param {?} container 地图容器的DOM元素
* @param {?} options 选项
* @return {?}
*/
create(container, options) {
return this.loader.load().pipe(map((/**
* @return {?}
*/
() => {
this.map = this.ngZone.runOutsideAngular((/**
* @return {?}
*/
() => new AMap.Map(container, options)));
this.logger.d(TAG, 'new map created.');
this.map$.next(this.map);
this.map$.complete();
return this.map;
})));
}
/**
* 销毁地图对象
* @return {?}
*/
destroy() {
this.get().subscribe((/**
* @param {?} m
* @return {?}
*/
m => {
m.destroy();
this.logger.d(TAG, 'map destroyed.');
this.map = null;
}));
}
}
AMapService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
AMapService.ctorParameters = () => [
{ type: AMapLoaderService },
{ type: LoggerService },
{ type: NgZone }
];
if (false) {
/**
* @type {?}
* @private
*/
AMapService.prototype.map;
/**
* @type {?}
* @private
*/
AMapService.prototype.map$;
/**
* @type {?}
* @private
*/
AMapService.prototype.loader;
/**
* @type {?}
* @private
*/
AMapService.prototype.logger;
/**
* @type {?}
* @private
*/
AMapService.prototype.ngZone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWFtYXAvIiwic291cmNlcyI6WyJzaGFyZWQvYW1hcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztNQUdsRCxHQUFHLEdBQUcsTUFBTTtBQUdsQixNQUFNLE9BQU8sV0FBVzs7Ozs7O0lBSXRCLFlBQ1UsTUFBeUIsRUFDekIsTUFBcUIsRUFDckIsTUFBYztRQUZkLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ3pCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUxoQixTQUFJLEdBQUcsSUFBSSxhQUFhLEVBQVksQ0FBQztJQU0xQyxDQUFDOzs7OztJQUtKLEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7Ozs7OztJQU9ELE1BQU0sQ0FBQyxTQUFzQixFQUFFLE9BQXlCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQzVCLEdBQUc7OztRQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUI7OztZQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLEVBQUMsQ0FBQztZQUNqRixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDbEIsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Ozs7O0lBS0QsT0FBTztRQUNMLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7WUE1Q0YsVUFBVTs7OztZQU5GLGlCQUFpQjtZQUNqQixhQUFhO1lBSkQsTUFBTTs7Ozs7OztJQVd6QiwwQkFBc0I7Ozs7O0lBQ3RCLDJCQUE2Qzs7Ozs7SUFHM0MsNkJBQWlDOzs7OztJQUNqQyw2QkFBNkI7Ozs7O0lBQzdCLDZCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQU1hcExvYWRlclNlcnZpY2UgfSBmcm9tICcuL2FtYXAtbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4vbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IEdldHRlciB9IGZyb20gJy4uL2Jhc2UvaW50ZXJmYWNlcyc7XG5cbmNvbnN0IFRBRyA9ICdBTWFwJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFNYXBTZXJ2aWNlIGltcGxlbWVudHMgR2V0dGVyPEFNYXAuTWFwPiB7XG4gIHByaXZhdGUgbWFwOiBBTWFwLk1hcDtcbiAgcHJpdmF0ZSBtYXAkID0gbmV3IFJlcGxheVN1YmplY3Q8QU1hcC5NYXA+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsb2FkZXI6IEFNYXBMb2FkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICkge31cblxuICAvKipcbiAgICog6I635Y+W5Zyw5Zu+5a+56LGhIEFNYXAuTWFwXG4gICAqL1xuICBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDliJvlu7rlnLDlm77lr7nosaEgQU1hcC5NYXBcbiAgICogQHBhcmFtIGNvbnRhaW5lciDlnLDlm77lrrnlmajnmoRET03lhYPntKBcbiAgICogQHBhcmFtIG9wdGlvbnMg6YCJ6aG5XG4gICAqL1xuICBjcmVhdGUoY29udGFpbmVyOiBIVE1MRWxlbWVudCwgb3B0aW9uczogQU1hcC5NYXAuT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmxvYWRlci5sb2FkKCkucGlwZShcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIHRoaXMubWFwID0gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gbmV3IEFNYXAuTWFwKGNvbnRhaW5lciwgb3B0aW9ucykpO1xuICAgICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ25ldyBtYXAgY3JlYXRlZC4nKTtcbiAgICAgICAgdGhpcy5tYXAkLm5leHQodGhpcy5tYXApO1xuICAgICAgICB0aGlzLm1hcCQuY29tcGxldGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDplIDmr4HlnLDlm77lr7nosaFcbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5nZXQoKS5zdWJzY3JpYmUobSA9PiB7XG4gICAgICBtLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnbWFwIGRlc3Ryb3llZC4nKTtcbiAgICAgIHRoaXMubWFwID0gbnVsbDtcbiAgICB9KTtcbiAgfVxufVxuIl19