ngx-amap
Version:
[][npm-badge-url] [][npm-badge-url] [][ci-url]
149 lines • 9.01 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: components/amap-info-window/amap-info-window.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 { LoggerService } from '../../shared/logger/logger.service';
/** @type {?} */
const TAG = 'AmapInfoWindow';
export class AmapInfoWindowService {
/**
* @param {?} amaps
* @param {?} logger
* @param {?} ngZone
*/
constructor(amaps, logger, ngZone) {
this.amaps = amaps;
this.logger = logger;
this.ngZone = ngZone;
this.infoWindow$ = new ReplaySubject(1);
}
/**
* 获取信息窗体
* @return {?}
*/
get() {
return this.infoWindow$.asObservable();
}
/**
* 创建 AMap.InfoWindow
* @param {?} options 选项
* @return {?}
*/
create(options) {
return this.amaps.get().pipe(map((/**
* @param {?} m
* @return {?}
*/
m => {
this.map = m;
this.infoWindow = this.ngZone.runOutsideAngular((/**
* @return {?}
*/
() => new AMap.InfoWindow(options)));
this.logger.d(TAG, 'new InfoWindow created.');
this.infoWindow$.next(this.infoWindow);
this.infoWindow$.complete();
return this.infoWindow;
})));
}
/**
* 销毁
* @return {?}
*/
destroy() {
this.get().subscribe((/**
* @param {?} w
* @return {?}
*/
w => {
w.close();
this.logger.d(TAG, 'InfoWindow destroyed.');
this.infoWindow = null;
this.map = null;
}));
}
/**
* 打开
* @param {?=} position
* @return {?}
*/
open(position) {
this.get().subscribe((/**
* @param {?} w
* @return {?}
*/
w => w.open(this.map, position)));
}
/**
* 在覆盖物上打开窗体
* @param {?} marker
* @return {?}
*/
openOnMark(marker) {
zip(marker, this.get()).subscribe((/**
* @param {?} __0
* @return {?}
*/
([m, w]) => {
w.open(this.map, m.getPosition());
}));
}
/**
* 关闭
* @return {?}
*/
close() {
this.get().subscribe((/**
* @param {?} w
* @return {?}
*/
w => w.close()));
}
}
AmapInfoWindowService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
AmapInfoWindowService.ctorParameters = () => [
{ type: AMapService },
{ type: LoggerService },
{ type: NgZone }
];
if (false) {
/**
* @type {?}
* @private
*/
AmapInfoWindowService.prototype.map;
/**
* @type {?}
* @private
*/
AmapInfoWindowService.prototype.infoWindow;
/**
* @type {?}
* @private
*/
AmapInfoWindowService.prototype.infoWindow$;
/**
* @type {?}
* @private
*/
AmapInfoWindowService.prototype.amaps;
/**
* @type {?}
* @private
*/
AmapInfoWindowService.prototype.logger;
/**
* @type {?}
* @private
*/
AmapInfoWindowService.prototype.ngZone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1pbmZvLXdpbmRvdy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWFtYXAvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2FtYXAtaW5mby13aW5kb3cvYW1hcC1pbmZvLXdpbmRvdy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7O01BRzdELEdBQUcsR0FBRyxnQkFBZ0I7QUFHNUIsTUFBTSxPQUFPLHFCQUFxQjs7Ozs7O0lBS2hDLFlBQW9CLEtBQWtCLEVBQVUsTUFBcUIsRUFBVSxNQUFjO1FBQXpFLFVBQUssR0FBTCxLQUFLLENBQWE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUZyRixnQkFBVyxHQUFHLElBQUksYUFBYSxDQUFrQixDQUFDLENBQUMsQ0FBQztJQUVvQyxDQUFDOzs7OztJQUtqRyxHQUFHO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7Ozs7OztJQU1ELE1BQU0sQ0FBQyxPQUFnQztRQUNyQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUMxQixHQUFHOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDTixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUI7OztZQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QixDQUFDLEVBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7Ozs7SUFLRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVM7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRTtZQUN2QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztRQUNsQixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7OztJQUtELElBQUksQ0FBQyxRQUE2QjtRQUNoQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFDLENBQUM7SUFDeEQsQ0FBQzs7Ozs7O0lBS0QsVUFBVSxDQUFDLE1BQTJDO1FBQ3BELEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUzs7OztRQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7OztJQUtELEtBQUs7UUFDSCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUM7SUFDdkMsQ0FBQzs7O1lBakVGLFVBQVU7Ozs7WUFORixXQUFXO1lBQ1gsYUFBYTtZQUpELE1BQU07Ozs7Ozs7SUFXekIsb0NBQXNCOzs7OztJQUN0QiwyQ0FBb0M7Ozs7O0lBQ3BDLDRDQUE0RDs7Ozs7SUFFaEQsc0NBQTBCOzs7OztJQUFFLHVDQUE2Qjs7Ozs7SUFBRSx1Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIHppcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQU1hcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvYW1hcC5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IEdldHRlciB9IGZyb20gJy4uLy4uL2Jhc2UvaW50ZXJmYWNlcyc7XG5cbmNvbnN0IFRBRyA9ICdBbWFwSW5mb1dpbmRvdyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBbWFwSW5mb1dpbmRvd1NlcnZpY2UgaW1wbGVtZW50cyBHZXR0ZXI8QU1hcC5JbmZvV2luZG93PiB7XG4gIHByaXZhdGUgbWFwOiBBTWFwLk1hcDtcbiAgcHJpdmF0ZSBpbmZvV2luZG93OiBBTWFwLkluZm9XaW5kb3c7XG4gIHByaXZhdGUgaW5mb1dpbmRvdyQgPSBuZXcgUmVwbGF5U3ViamVjdDxBTWFwLkluZm9XaW5kb3c+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYW1hcHM6IEFNYXBTZXJ2aWNlLCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge31cblxuICAvKipcbiAgICog6I635Y+W5L+h5oGv56qX5L2TXG4gICAqL1xuICBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5mb1dpbmRvdyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICog5Yib5bu6IEFNYXAuSW5mb1dpbmRvd1xuICAgKiBAcGFyYW0gb3B0aW9ucyDpgInpoblcbiAgICovXG4gIGNyZWF0ZShvcHRpb25zOiBBTWFwLkluZm9XaW5kb3cuT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmFtYXBzLmdldCgpLnBpcGUoXG4gICAgICBtYXAobSA9PiB7XG4gICAgICAgIHRoaXMubWFwID0gbTtcbiAgICAgICAgdGhpcy5pbmZvV2luZG93ID0gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gbmV3IEFNYXAuSW5mb1dpbmRvdyhvcHRpb25zKSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnbmV3IEluZm9XaW5kb3cgY3JlYXRlZC4nKTtcbiAgICAgICAgdGhpcy5pbmZvV2luZG93JC5uZXh0KHRoaXMuaW5mb1dpbmRvdyk7XG4gICAgICAgIHRoaXMuaW5mb1dpbmRvdyQuY29tcGxldGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5mb1dpbmRvdztcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICog6ZSA5q+BXG4gICAqL1xuICBkZXN0cm95KCkge1xuICAgIHRoaXMuZ2V0KCkuc3Vic2NyaWJlKHcgPT4ge1xuICAgICAgdy5jbG9zZSgpO1xuICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICdJbmZvV2luZG93IGRlc3Ryb3llZC4nKTtcbiAgICAgIHRoaXMuaW5mb1dpbmRvdyA9IG51bGw7XG4gICAgICB0aGlzLm1hcCA9IG51bGw7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICog5omT5byAXG4gICAqL1xuICBvcGVuKHBvc2l0aW9uPzogQU1hcC5Mb2NhdGlvblZhbHVlKSB7XG4gICAgdGhpcy5nZXQoKS5zdWJzY3JpYmUodyA9PiB3Lm9wZW4odGhpcy5tYXAsIHBvc2l0aW9uKSk7XG4gIH1cblxuICAvKipcbiAgICog5Zyo6KaG55uW54mp5LiK5omT5byA56qX5L2TXG4gICAqL1xuICBvcGVuT25NYXJrKG1hcmtlcjogT2JzZXJ2YWJsZTxBTWFwLk1hcmtlciB8IEFNYXAuVGV4dD4pIHtcbiAgICB6aXAobWFya2VyLCB0aGlzLmdldCgpKS5zdWJzY3JpYmUoKFttLCB3XSkgPT4ge1xuICAgICAgdy5vcGVuKHRoaXMubWFwLCBtLmdldFBvc2l0aW9uKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIOWFs+mXrVxuICAgKi9cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5nZXQoKS5zdWJzY3JpYmUodyA9PiB3LmNsb3NlKCkpO1xuICB9XG59XG4iXX0=