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]

198 lines 10.6 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 * as tslib_1 from "tslib"; 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 {?} */ var TAG = 'AmapInfoWindow'; var AmapInfoWindowService = /** @class */ (function () { function AmapInfoWindowService(amaps, logger, ngZone) { this.amaps = amaps; this.logger = logger; this.ngZone = ngZone; this.infoWindow$ = new ReplaySubject(1); } /** * 获取信息窗体 */ /** * 获取信息窗体 * @return {?} */ AmapInfoWindowService.prototype.get = /** * 获取信息窗体 * @return {?} */ function () { return this.infoWindow$.asObservable(); }; /** * 创建 AMap.InfoWindow * @param options 选项 */ /** * 创建 AMap.InfoWindow * @param {?} options 选项 * @return {?} */ AmapInfoWindowService.prototype.create = /** * 创建 AMap.InfoWindow * @param {?} options 选项 * @return {?} */ function (options) { var _this = this; return this.amaps.get().pipe(map((/** * @param {?} m * @return {?} */ function (m) { _this.map = m; _this.infoWindow = _this.ngZone.runOutsideAngular((/** * @return {?} */ function () { return new AMap.InfoWindow(options); })); _this.logger.d(TAG, 'new InfoWindow created.'); _this.infoWindow$.next(_this.infoWindow); _this.infoWindow$.complete(); return _this.infoWindow; }))); }; /** * 销毁 */ /** * 销毁 * @return {?} */ AmapInfoWindowService.prototype.destroy = /** * 销毁 * @return {?} */ function () { var _this = this; this.get().subscribe((/** * @param {?} w * @return {?} */ function (w) { w.close(); _this.logger.d(TAG, 'InfoWindow destroyed.'); _this.infoWindow = null; _this.map = null; })); }; /** * 打开 */ /** * 打开 * @param {?=} position * @return {?} */ AmapInfoWindowService.prototype.open = /** * 打开 * @param {?=} position * @return {?} */ function (position) { var _this = this; this.get().subscribe((/** * @param {?} w * @return {?} */ function (w) { return w.open(_this.map, position); })); }; /** * 在覆盖物上打开窗体 */ /** * 在覆盖物上打开窗体 * @param {?} marker * @return {?} */ AmapInfoWindowService.prototype.openOnMark = /** * 在覆盖物上打开窗体 * @param {?} marker * @return {?} */ function (marker) { var _this = this; zip(marker, this.get()).subscribe((/** * @param {?} __0 * @return {?} */ function (_a) { var _b = tslib_1.__read(_a, 2), m = _b[0], w = _b[1]; w.open(_this.map, m.getPosition()); })); }; /** * 关闭 */ /** * 关闭 * @return {?} */ AmapInfoWindowService.prototype.close = /** * 关闭 * @return {?} */ function () { this.get().subscribe((/** * @param {?} w * @return {?} */ function (w) { return w.close(); })); }; AmapInfoWindowService.decorators = [ { type: Injectable } ]; /** @nocollapse */ AmapInfoWindowService.ctorParameters = function () { return [ { type: AMapService }, { type: LoggerService }, { type: NgZone } ]; }; return AmapInfoWindowService; }()); export { AmapInfoWindowService }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1pbmZvLXdpbmRvdy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWFtYXAvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2FtYXAtaW5mby13aW5kb3cvYW1hcC1pbmZvLXdpbmRvdy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztJQUc3RCxHQUFHLEdBQUcsZ0JBQWdCO0FBRTVCO0lBTUUsK0JBQW9CLEtBQWtCLEVBQVUsTUFBcUIsRUFBVSxNQUFjO1FBQXpFLFVBQUssR0FBTCxLQUFLLENBQWE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUZyRixnQkFBVyxHQUFHLElBQUksYUFBYSxDQUFrQixDQUFDLENBQUMsQ0FBQztJQUVvQyxDQUFDO0lBRWpHOztPQUVHOzs7OztJQUNILG1DQUFHOzs7O0lBQUg7UUFDRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7T0FHRzs7Ozs7O0lBQ0gsc0NBQU07Ozs7O0lBQU4sVUFBTyxPQUFnQztRQUF2QyxpQkFXQztRQVZDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQzFCLEdBQUc7Ozs7UUFBQyxVQUFBLENBQUM7WUFDSCxLQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNiLEtBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUI7OztZQUFDLGNBQU0sT0FBQSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQTVCLENBQTRCLEVBQUMsQ0FBQztZQUNwRixLQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUMsQ0FBQztZQUM5QyxLQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkMsS0FBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM1QixPQUFPLEtBQUksQ0FBQyxVQUFVLENBQUM7UUFDekIsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRzs7Ozs7SUFDSCx1Q0FBTzs7OztJQUFQO1FBQUEsaUJBT0M7UUFOQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUzs7OztRQUFDLFVBQUEsQ0FBQztZQUNwQixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVixLQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztZQUM1QyxLQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixLQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztRQUNsQixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRzs7Ozs7O0lBQ0gsb0NBQUk7Ozs7O0lBQUosVUFBSyxRQUE2QjtRQUFsQyxpQkFFQztRQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEVBQTFCLENBQTBCLEVBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7Ozs7OztJQUNILDBDQUFVOzs7OztJQUFWLFVBQVcsTUFBMkM7UUFBdEQsaUJBSUM7UUFIQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFDLEVBQU07Z0JBQU4sMEJBQU0sRUFBTCxTQUFDLEVBQUUsU0FBQztZQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7Ozs7O0lBQ0gscUNBQUs7Ozs7SUFBTDtRQUNFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQVQsQ0FBUyxFQUFDLENBQUM7SUFDdkMsQ0FBQzs7Z0JBakVGLFVBQVU7Ozs7Z0JBTkYsV0FBVztnQkFDWCxhQUFhO2dCQUpELE1BQU07O0lBMkUzQiw0QkFBQztDQUFBLEFBbEVELElBa0VDO1NBakVZLHFCQUFxQjs7Ozs7O0lBQ2hDLG9DQUFzQjs7Ozs7SUFDdEIsMkNBQW9DOzs7OztJQUNwQyw0Q0FBNEQ7Ozs7O0lBRWhELHNDQUEwQjs7Ozs7SUFBRSx1Q0FBNkI7Ozs7O0lBQUUsdUNBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCB6aXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFNYXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2FtYXAuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBHZXR0ZXIgfSBmcm9tICcuLi8uLi9iYXNlL2ludGVyZmFjZXMnO1xuXG5jb25zdCBUQUcgPSAnQW1hcEluZm9XaW5kb3cnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQW1hcEluZm9XaW5kb3dTZXJ2aWNlIGltcGxlbWVudHMgR2V0dGVyPEFNYXAuSW5mb1dpbmRvdz4ge1xuICBwcml2YXRlIG1hcDogQU1hcC5NYXA7XG4gIHByaXZhdGUgaW5mb1dpbmRvdzogQU1hcC5JbmZvV2luZG93O1xuICBwcml2YXRlIGluZm9XaW5kb3ckID0gbmV3IFJlcGxheVN1YmplY3Q8QU1hcC5JbmZvV2luZG93PigxKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFtYXBzOiBBTWFwU2VydmljZSwgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHt9XG5cbiAgLyoqXG4gICAqIOiOt+WPluS/oeaBr+eql+S9k1xuICAgKi9cbiAgZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLmluZm9XaW5kb3ckLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIOWIm+W7uiBBTWFwLkluZm9XaW5kb3dcbiAgICogQHBhcmFtIG9wdGlvbnMg6YCJ6aG5XG4gICAqL1xuICBjcmVhdGUob3B0aW9uczogQU1hcC5JbmZvV2luZG93Lk9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5hbWFwcy5nZXQoKS5waXBlKFxuICAgICAgbWFwKG0gPT4ge1xuICAgICAgICB0aGlzLm1hcCA9IG07XG4gICAgICAgIHRoaXMuaW5mb1dpbmRvdyA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IG5ldyBBTWFwLkluZm9XaW5kb3cob3B0aW9ucykpO1xuICAgICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ25ldyBJbmZvV2luZG93IGNyZWF0ZWQuJyk7XG4gICAgICAgIHRoaXMuaW5mb1dpbmRvdyQubmV4dCh0aGlzLmluZm9XaW5kb3cpO1xuICAgICAgICB0aGlzLmluZm9XaW5kb3ckLmNvbXBsZXRlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmluZm9XaW5kb3c7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIOmUgOavgVxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLmdldCgpLnN1YnNjcmliZSh3ID0+IHtcbiAgICAgIHcuY2xvc2UoKTtcbiAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnSW5mb1dpbmRvdyBkZXN0cm95ZWQuJyk7XG4gICAgICB0aGlzLmluZm9XaW5kb3cgPSBudWxsO1xuICAgICAgdGhpcy5tYXAgPSBudWxsO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIOaJk+W8gFxuICAgKi9cbiAgb3Blbihwb3NpdGlvbj86IEFNYXAuTG9jYXRpb25WYWx1ZSkge1xuICAgIHRoaXMuZ2V0KCkuc3Vic2NyaWJlKHcgPT4gdy5vcGVuKHRoaXMubWFwLCBwb3NpdGlvbikpO1xuICB9XG5cbiAgLyoqXG4gICAqIOWcqOimhueblueJqeS4iuaJk+W8gOeql+S9k1xuICAgKi9cbiAgb3Blbk9uTWFyayhtYXJrZXI6IE9ic2VydmFibGU8QU1hcC5NYXJrZXIgfCBBTWFwLlRleHQ+KSB7XG4gICAgemlwKG1hcmtlciwgdGhpcy5nZXQoKSkuc3Vic2NyaWJlKChbbSwgd10pID0+IHtcbiAgICAgIHcub3Blbih0aGlzLm1hcCwgbS5nZXRQb3NpdGlvbigpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDlhbPpl61cbiAgICovXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuZ2V0KCkuc3Vic2NyaWJlKHcgPT4gdy5jbG9zZSgpKTtcbiAgfVxufVxuIl19