ngx-amap
Version:
[][npm-badge-url] [][npm-badge-url] [][ci-url]
109 lines • 6.84 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: directives/amap-marker/amap-marker.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 { AMapService } from '../../shared/amap.service';
import { LoggerService } from '../../shared/logger/logger.service';
/** @type {?} */
const TAG = 'AmapMarker';
export class AmapMarkerService {
/**
* @param {?} amaps
* @param {?} logger
* @param {?} ngZone
*/
constructor(amaps, logger, ngZone) {
this.amaps = amaps;
this.logger = logger;
this.ngZone = ngZone;
this.marker$ = new ReplaySubject(1);
}
/**
* 获取点标记
* @return {?}
*/
get() {
return this.marker$.asObservable();
}
/**
* 创建点标记 AMap.Marker
* @param {?} options 选项
* @param {?=} addToMap 是否直接加进地图
* @return {?}
*/
create(options, addToMap = true) {
return this.amaps.get().pipe(map((/**
* @param {?} m
* @return {?}
*/
m => {
if (addToMap) {
options.map = m;
}
this.marker = this.ngZone.runOutsideAngular((/**
* @return {?}
*/
() => new AMap.Marker(options)));
this.logger.d(TAG, 'new marker created.');
this.marker$.next(this.marker);
this.marker$.complete();
return this.marker;
})));
}
/**
* 销毁点标记
* @return {?}
*/
destroy() {
this.get().subscribe((/**
* @param {?} m
* @return {?}
*/
m => {
m.setMap(null);
this.logger.d(TAG, 'marker destroyed.');
this.marker = null;
}));
}
}
AmapMarkerService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
AmapMarkerService.ctorParameters = () => [
{ type: AMapService },
{ type: LoggerService },
{ type: NgZone }
];
if (false) {
/**
* @type {?}
* @private
*/
AmapMarkerService.prototype.marker;
/**
* @type {?}
* @private
*/
AmapMarkerService.prototype.marker$;
/**
* @type {?}
* @private
*/
AmapMarkerService.prototype.amaps;
/**
* @type {?}
* @private
*/
AmapMarkerService.prototype.logger;
/**
* @type {?}
* @private
*/
AmapMarkerService.prototype.ngZone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1tYXJrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1hbWFwLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy9hbWFwLW1hcmtlci9hbWFwLW1hcmtlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7TUFHN0QsR0FBRyxHQUFHLFlBQVk7QUFHeEIsTUFBTSxPQUFPLGlCQUFpQjs7Ozs7O0lBSTVCLFlBQW9CLEtBQWtCLEVBQVUsTUFBcUIsRUFBVSxNQUFjO1FBQXpFLFVBQUssR0FBTCxLQUFLLENBQWE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUZyRixZQUFPLEdBQUcsSUFBSSxhQUFhLENBQWMsQ0FBQyxDQUFDLENBQUM7SUFFNEMsQ0FBQzs7Ozs7SUFLakcsR0FBRztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzs7Ozs7O0lBT0QsTUFBTSxDQUFDLE9BQTRCLEVBQUUsUUFBUSxHQUFHLElBQUk7UUFDbEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDMUIsR0FBRzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ04sSUFBSSxRQUFRLEVBQUU7Z0JBQ1osT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7YUFDakI7WUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCOzs7WUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Ozs7O0lBS0QsT0FBTztRQUNMLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBM0NGLFVBQVU7Ozs7WUFORixXQUFXO1lBQ1gsYUFBYTtZQUpELE1BQU07Ozs7Ozs7SUFXekIsbUNBQTRCOzs7OztJQUM1QixvQ0FBb0Q7Ozs7O0lBRXhDLGtDQUEwQjs7Ozs7SUFBRSxtQ0FBNkI7Ozs7O0lBQUUsbUNBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBTWFwU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9hbWFwLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2V0dGVyIH0gZnJvbSAnLi4vLi4vYmFzZS9pbnRlcmZhY2VzJztcblxuY29uc3QgVEFHID0gJ0FtYXBNYXJrZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQW1hcE1hcmtlclNlcnZpY2UgaW1wbGVtZW50cyBHZXR0ZXI8QU1hcC5NYXJrZXI+IHtcbiAgcHJpdmF0ZSBtYXJrZXI6IEFNYXAuTWFya2VyO1xuICBwcml2YXRlIG1hcmtlciQgPSBuZXcgUmVwbGF5U3ViamVjdDxBTWFwLk1hcmtlcj4oMSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbWFwczogQU1hcFNlcnZpY2UsIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLCBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7fVxuXG4gIC8qKlxuICAgKiDojrflj5bngrnmoIforrBcbiAgICovXG4gIGdldCgpIHtcbiAgICByZXR1cm4gdGhpcy5tYXJrZXIkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIOWIm+W7uueCueagh+iusCBBTWFwLk1hcmtlclxuICAgKiBAcGFyYW0gb3B0aW9ucyDpgInpoblcbiAgICogQHBhcmFtIGFkZFRvTWFwIOaYr+WQpuebtOaOpeWKoOi/m+WcsOWbvlxuICAgKi9cbiAgY3JlYXRlKG9wdGlvbnM6IEFNYXAuTWFya2VyLk9wdGlvbnMsIGFkZFRvTWFwID0gdHJ1ZSkge1xuICAgIHJldHVybiB0aGlzLmFtYXBzLmdldCgpLnBpcGUoXG4gICAgICBtYXAobSA9PiB7XG4gICAgICAgIGlmIChhZGRUb01hcCkge1xuICAgICAgICAgIG9wdGlvbnMubWFwID0gbTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1hcmtlciA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IG5ldyBBTWFwLk1hcmtlcihvcHRpb25zKSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnbmV3IG1hcmtlciBjcmVhdGVkLicpO1xuICAgICAgICB0aGlzLm1hcmtlciQubmV4dCh0aGlzLm1hcmtlcik7XG4gICAgICAgIHRoaXMubWFya2VyJC5jb21wbGV0ZSgpO1xuICAgICAgICByZXR1cm4gdGhpcy5tYXJrZXI7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIOmUgOavgeeCueagh+iusFxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLmdldCgpLnN1YnNjcmliZShtID0+IHtcbiAgICAgIG0uc2V0TWFwKG51bGwpO1xuICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICdtYXJrZXIgZGVzdHJveWVkLicpO1xuICAgICAgdGhpcy5tYXJrZXIgPSBudWxsO1xuICAgIH0pO1xuICB9XG59XG4iXX0=