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]

149 lines 9.01 kB
/** * @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=