ngx-amap
Version:
[][npm-badge-url] [][npm-badge-url] [][ci-url]
145 lines • 9.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: directives/ui-awesome-marker/ui-awesome-marker.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 { AmapUILoaderService } from '../../shared/amap-ui-loader.service';
import { LoggerService } from '../../shared/logger/logger.service';
export var AMapUIAwesomeMarker;
(function (AMapUIAwesomeMarker) {
/**
* @record
* @template ExtraData
*/
function Options() { }
AMapUIAwesomeMarker.Options = Options;
if (false) {
/**
* icon 的名称,可用的 icons 参见 Font Awesome 官网
* @type {?|undefined}
*/
Options.prototype.awesomeIcon;
/**
* 返回字体节点上的 classNames
* @type {?|undefined}
*/
Options.prototype.getClassnamesOfAwesomeIcon;
}
})(AMapUIAwesomeMarker || (AMapUIAwesomeMarker = {}));
/** @type {?} */
const TAG = 'UIAwesomeMarker';
export class UIAwesomeMarkerService {
/**
* @param {?} amaps
* @param {?} uiLoader
* @param {?} logger
* @param {?} ngZone
*/
constructor(amaps, uiLoader, logger, ngZone) {
this.amaps = amaps;
this.uiLoader = uiLoader;
this.logger = logger;
this.ngZone = ngZone;
this.marker$ = new ReplaySubject(1);
this.ui = (/** @type {?} */ (this.uiLoader.load('overlay/AwesomeMarker')));
}
/**
* 获取点标记
* @return {?}
*/
get() {
return this.marker$.asObservable();
}
/**
* 创建点标记 AMap.AwesomeMarker
* @param {?} options 选项
* @param {?=} addToMap 是否直接加进地图
* @return {?}
*/
create(options, addToMap = true) {
return zip(this.ui, this.amaps.get()).pipe(map((/**
* @param {?} __0
* @return {?}
*/
([AwesomeMarker, m]) => {
if (addToMap) {
options.map = m;
}
this.marker = this.ngZone.runOutsideAngular((/**
* @return {?}
*/
() => new AwesomeMarker(options)));
this.logger.d(TAG, 'new awesome 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, 'awesome marker destroyed.');
this.marker = null;
}));
}
}
UIAwesomeMarkerService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
UIAwesomeMarkerService.ctorParameters = () => [
{ type: AMapService },
{ type: AmapUILoaderService },
{ type: LoggerService },
{ type: NgZone }
];
if (false) {
/**
* @type {?}
* @private
*/
UIAwesomeMarkerService.prototype.marker;
/**
* @type {?}
* @private
*/
UIAwesomeMarkerService.prototype.marker$;
/**
* @type {?}
* @private
*/
UIAwesomeMarkerService.prototype.ui;
/**
* @type {?}
* @private
*/
UIAwesomeMarkerService.prototype.amaps;
/**
* @type {?}
* @private
*/
UIAwesomeMarkerService.prototype.uiLoader;
/**
* @type {?}
* @private
*/
UIAwesomeMarkerService.prototype.logger;
/**
* @type {?}
* @private
*/
UIAwesomeMarkerService.prototype.ngZone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYXdlc29tZS1tYXJrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1hbWFwLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy91aS1hd2Vzb21lLW1hcmtlci91aS1hd2Vzb21lLW1hcmtlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFJbkUsTUFBTSxLQUFXLG1CQUFtQixDQVduQztBQVhELFdBQWlCLG1CQUFtQjs7Ozs7SUFDbEMsc0JBU0M7Ozs7Ozs7UUFMQyw4QkFBcUI7Ozs7O1FBSXJCLDZDQUE2RDs7QUFFakUsQ0FBQyxFQVhnQixtQkFBbUIsS0FBbkIsbUJBQW1CLFFBV25DOztNQUVLLEdBQUcsR0FBRyxpQkFBaUI7QUFHN0IsTUFBTSxPQUFPLHNCQUFzQjs7Ozs7OztJQUtqQyxZQUNVLEtBQWtCLEVBQ2xCLFFBQTZCLEVBQzdCLE1BQXFCLEVBQ3JCLE1BQWM7UUFIZCxVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBQzdCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVBoQixZQUFPLEdBQUcsSUFBSSxhQUFhLENBQU0sQ0FBQyxDQUFDLENBQUM7UUFDcEMsT0FBRSxHQUFHLG1CQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQW1CLENBQUM7SUFPekUsQ0FBQzs7Ozs7SUFLSixHQUFHO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7Ozs7Ozs7SUFPRCxNQUFNLENBQUMsT0FBb0MsRUFBRSxRQUFRLEdBQUcsSUFBSTtRQUMxRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3hDLEdBQUc7Ozs7UUFBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekIsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7YUFDakI7WUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCOzs7WUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDO1lBQzlFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNyQixDQUFDLEVBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7Ozs7SUFLRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVM7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRTtZQUN2QixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFqREYsVUFBVTs7OztZQXJCRixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGFBQWE7WUFMRCxNQUFNOzs7Ozs7O0lBMEJ6Qix3Q0FBb0I7Ozs7O0lBQ3BCLHlDQUE0Qzs7Ozs7SUFDNUMsb0NBQTRFOzs7OztJQUcxRSx1Q0FBMEI7Ozs7O0lBQzFCLDBDQUFxQzs7Ozs7SUFDckMsd0NBQTZCOzs7OztJQUM3Qix3Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIHppcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQU1hcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvYW1hcC5zZXJ2aWNlJztcbmltcG9ydCB7IEFtYXBVSUxvYWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvYW1hcC11aS1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBHZXR0ZXIgfSBmcm9tICcuLi8uLi9iYXNlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQU1hcFVJU2ltcGxlTWFya2VyIH0gZnJvbSAnLi4vdWktc2ltcGxlLW1hcmtlci91aS1zaW1wbGUtbWFya2VyLnNlcnZpY2UnO1xuXG5leHBvcnQgbmFtZXNwYWNlIEFNYXBVSUF3ZXNvbWVNYXJrZXIge1xuICBleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnM8RXh0cmFEYXRhID0gYW55PiBleHRlbmRzIEFNYXBVSVNpbXBsZU1hcmtlci5PcHRpb25zPEV4dHJhRGF0YT4ge1xuICAgIC8qKlxuICAgICAqIGljb24g55qE5ZCN56ew77yM5Y+v55So55qEIGljb25zIOWPguingSBGb250IEF3ZXNvbWUg5a6Y572RXG4gICAgICovXG4gICAgYXdlc29tZUljb24/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICog6L+U5Zue5a2X5L2T6IqC54K55LiK55qEIGNsYXNzTmFtZXNcbiAgICAgKi9cbiAgICBnZXRDbGFzc25hbWVzT2ZBd2Vzb21lSWNvbj86IChhd2Vzb21lSWNvbjogc3RyaW5nKSA9PiBzdHJpbmc7XG4gIH1cbn1cblxuY29uc3QgVEFHID0gJ1VJQXdlc29tZU1hcmtlcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVSUF3ZXNvbWVNYXJrZXJTZXJ2aWNlIGltcGxlbWVudHMgR2V0dGVyPGFueT4ge1xuICBwcml2YXRlIG1hcmtlcjogYW55O1xuICBwcml2YXRlIG1hcmtlciQgPSBuZXcgUmVwbGF5U3ViamVjdDxhbnk+KDEpO1xuICBwcml2YXRlIHVpID0gdGhpcy51aUxvYWRlci5sb2FkKCdvdmVybGF5L0F3ZXNvbWVNYXJrZXInKSBhcyBPYnNlcnZhYmxlPGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbWFwczogQU1hcFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1aUxvYWRlcjogQW1hcFVJTG9hZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICApIHt9XG5cbiAgLyoqXG4gICAqIOiOt+WPlueCueagh+iusFxuICAgKi9cbiAgZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLm1hcmtlciQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICog5Yib5bu654K55qCH6K6wIEFNYXAuQXdlc29tZU1hcmtlclxuICAgKiBAcGFyYW0gb3B0aW9ucyDpgInpoblcbiAgICogQHBhcmFtIGFkZFRvTWFwIOaYr+WQpuebtOaOpeWKoOi/m+WcsOWbvlxuICAgKi9cbiAgY3JlYXRlKG9wdGlvbnM6IEFNYXBVSUF3ZXNvbWVNYXJrZXIuT3B0aW9ucywgYWRkVG9NYXAgPSB0cnVlKSB7XG4gICAgcmV0dXJuIHppcCh0aGlzLnVpLCB0aGlzLmFtYXBzLmdldCgpKS5waXBlKFxuICAgICAgbWFwKChbQXdlc29tZU1hcmtlciwgbV0pID0+IHtcbiAgICAgICAgaWYgKGFkZFRvTWFwKSB7XG4gICAgICAgICAgb3B0aW9ucy5tYXAgPSBtO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWFya2VyID0gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gbmV3IEF3ZXNvbWVNYXJrZXIob3B0aW9ucykpO1xuICAgICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ25ldyBhd2Vzb21lIG1hcmtlciBjcmVhdGVkLicpO1xuICAgICAgICB0aGlzLm1hcmtlciQubmV4dCh0aGlzLm1hcmtlcik7XG4gICAgICAgIHRoaXMubWFya2VyJC5jb21wbGV0ZSgpO1xuICAgICAgICByZXR1cm4gdGhpcy5tYXJrZXI7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIOmUgOavgeeCueagh+iusFxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLmdldCgpLnN1YnNjcmliZShtID0+IHtcbiAgICAgIG0uc2V0TWFwKG51bGwpO1xuICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICdhd2Vzb21lIG1hcmtlciBkZXN0cm95ZWQuJyk7XG4gICAgICB0aGlzLm1hcmtlciA9IG51bGw7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==