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]

105 lines 6.39 kB
/** * @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