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]

202 lines 13 kB
/** * @fileoverview added by tsickle * Generated from: directives/amap-marker-clusterer/amap-marker-clusterer.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 { PluginLoaderService } from '../../shared/plugin-loader.service'; import { LoggerService } from '../../shared/logger/logger.service'; export var AMapMarkerClusterer; (function (AMapMarkerClusterer) { /** * @record */ function StyleObject() { } AMapMarkerClusterer.StyleObject = StyleObject; if (false) { /** @type {?|undefined} */ StyleObject.prototype.url; /** @type {?|undefined} */ StyleObject.prototype.size; /** @type {?|undefined} */ StyleObject.prototype.offset; /** @type {?|undefined} */ StyleObject.prototype.imageOffset; /** @type {?|undefined} */ StyleObject.prototype.textColor; /** @type {?|undefined} */ StyleObject.prototype.textSize; } /** * @record */ function Options() { } AMapMarkerClusterer.Options = Options; if (false) { /** * 聚合计算时网格的像素大小,默认60 * @type {?|undefined} */ Options.prototype.gridSize; /** * 聚合的最小数量。默认值为2,即小于2个点则不能成为一个聚合 * @type {?|undefined} */ Options.prototype.minClusterSize; /** * 最大的聚合级别,大于该级别就不进行相应的聚合。默认值为18 * @type {?|undefined} */ Options.prototype.maxZoom; /** * 聚合点的图标位置是否是所有聚合内点的中心点。默认为否 * @type {?|undefined} */ Options.prototype.averageCenter; /** * 指定聚合后的点标记的图标样式,可缺省,缺省时为默认样式 * @type {?|undefined} */ Options.prototype.styles; /** * 该方法用来实现聚合点的自定义绘制 * @type {?|undefined} */ Options.prototype.renderClusterMarker; /** * 点击聚合点时,是否散开,默认值为:true * @type {?|undefined} */ Options.prototype.zoomOnClick; } })(AMapMarkerClusterer || (AMapMarkerClusterer = {})); /** @type {?} */ var TAG = 'AmapMarkerCluster'; var AmapMarkerClustererService = /** @class */ (function () { function AmapMarkerClustererService(amaps, plugins, logger, ngZone) { this.amaps = amaps; this.plugins = plugins; this.logger = logger; this.ngZone = ngZone; this.markerClusterer$ = new ReplaySubject(1); } /** * 获取点聚合 */ /** * 获取点聚合 * @return {?} */ AmapMarkerClustererService.prototype.get = /** * 获取点聚合 * @return {?} */ function () { return this.markerClusterer$.asObservable(); }; /** * 创建点聚合 AMap.MarkerClusterer * @param options 选项 */ /** * 创建点聚合 AMap.MarkerClusterer * @param {?} options 选项 * @return {?} */ AmapMarkerClustererService.prototype.create = /** * 创建点聚合 AMap.MarkerClusterer * @param {?} options 选项 * @return {?} */ function (options) { var _this = this; return zip(this.amaps.get(), this.plugins.load('AMap.MarkerClusterer')).pipe(map((/** * @param {?} __0 * @return {?} */ function (_a) { var _b = tslib_1.__read(_a, 1), m = _b[0]; _this.markerClusterer = _this.ngZone.runOutsideAngular((/** * @return {?} */ function () { return new AMap.MarkerClusterer(m, [], options); })); _this.logger.d(TAG, 'new markerClusterer created.'); _this.markerClusterer$.next(_this.markerClusterer); _this.markerClusterer$.complete(); return _this.markerClusterer; }))); }; /** * 销毁点聚合 */ /** * 销毁点聚合 * @return {?} */ AmapMarkerClustererService.prototype.destroy = /** * 销毁点聚合 * @return {?} */ function () { var _this = this; this.get().subscribe((/** * @param {?} m * @return {?} */ function (m) { m.clearMarkers(); m.setMap(null); _this.logger.d(TAG, 'markerClusterer destroyed.'); _this.markerClusterer = null; })); }; AmapMarkerClustererService.decorators = [ { type: Injectable } ]; /** @nocollapse */ AmapMarkerClustererService.ctorParameters = function () { return [ { type: AMapService }, { type: PluginLoaderService }, { type: LoggerService }, { type: NgZone } ]; }; return AmapMarkerClustererService; }()); export { AmapMarkerClustererService }; if (false) { /** * @type {?} * @private */ AmapMarkerClustererService.prototype.markerClusterer; /** * @type {?} * @private */ AmapMarkerClustererService.prototype.markerClusterer$; /** * @type {?} * @private */ AmapMarkerClustererService.prototype.amaps; /** * @type {?} * @private */ AmapMarkerClustererService.prototype.plugins; /** * @type {?} * @private */ AmapMarkerClustererService.prototype.logger; /** * @type {?} * @private */ AmapMarkerClustererService.prototype.ngZone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1tYXJrZXItY2x1c3RlcmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYW1hcC8iLCJzb3VyY2VzIjpbImRpcmVjdGl2ZXMvYW1hcC1tYXJrZXItY2x1c3RlcmVyL2FtYXAtbWFya2VyLWNsdXN0ZXJlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBSW5FLE1BQU0sS0FBVyxtQkFBbUIsQ0E0Q25DO0FBNUNELFdBQWlCLG1CQUFtQjs7OztJQUNsQywwQkFPQzs7OztRQU5DLDBCQUFhOztRQUNiLDJCQUFpQjs7UUFDakIsNkJBQW9COztRQUNwQixrQ0FBeUI7O1FBQ3pCLGdDQUFtQjs7UUFDbkIsK0JBQWtCOzs7OztJQUdwQixzQkFpQ0M7Ozs7Ozs7UUE3QkMsMkJBQWtCOzs7OztRQUlsQixpQ0FBd0I7Ozs7O1FBSXhCLDBCQUFpQjs7Ozs7UUFJakIsZ0NBQXdCOzs7OztRQUl4Qix5QkFBdUI7Ozs7O1FBSXZCLHNDQUlXOzs7OztRQUlYLDhCQUFzQjs7QUFFMUIsQ0FBQyxFQTVDZ0IsbUJBQW1CLEtBQW5CLG1CQUFtQixRQTRDbkM7O0lBRUssR0FBRyxHQUFHLG1CQUFtQjtBQUUvQjtJQUtFLG9DQUNVLEtBQWtCLEVBQ2xCLE9BQTRCLEVBQzVCLE1BQXFCLEVBQ3JCLE1BQWM7UUFIZCxVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQ2xCLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQU5oQixxQkFBZ0IsR0FBRyxJQUFJLGFBQWEsQ0FBTSxDQUFDLENBQUMsQ0FBQztJQU9sRCxDQUFDO0lBRUo7O09BRUc7Ozs7O0lBQ0gsd0NBQUc7Ozs7SUFBSDtRQUNFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRDs7O09BR0c7Ozs7OztJQUNILDJDQUFNOzs7OztJQUFOLFVBQU8sT0FBb0M7UUFBM0MsaUJBWUM7UUFYQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzFFLEdBQUc7Ozs7UUFBQyxVQUFDLEVBQUc7Z0JBQUgsMEJBQUcsRUFBRixTQUFDO1lBQ0wsS0FBSSxDQUFDLGVBQWUsR0FBRyxLQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQjs7O1lBQ2xELGNBQU0sT0FBQSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBeEMsQ0FBd0MsRUFDL0MsQ0FBQztZQUNGLEtBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO1lBQ25ELEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2pELEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEtBQUksQ0FBQyxlQUFlLENBQUM7UUFDOUIsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRzs7Ozs7SUFDSCw0Q0FBTzs7OztJQUFQO1FBQUEsaUJBT0M7UUFOQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUzs7OztRQUFDLFVBQUEsQ0FBQztZQUNwQixDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDakIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNmLEtBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO1lBQ2pELEtBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzlCLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0JBL0NGLFVBQVU7Ozs7Z0JBdERGLFdBQVc7Z0JBQ1gsbUJBQW1CO2dCQUNuQixhQUFhO2dCQUxELE1BQU07O0lBeUczQixpQ0FBQztDQUFBLEFBaERELElBZ0RDO1NBL0NZLDBCQUEwQjs7Ozs7O0lBQ3JDLHFEQUE2Qjs7Ozs7SUFDN0Isc0RBQXFEOzs7OztJQUduRCwyQ0FBMEI7Ozs7O0lBQzFCLDZDQUFvQzs7Ozs7SUFDcEMsNENBQTZCOzs7OztJQUM3Qiw0Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQU1hcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvYW1hcC5zZXJ2aWNlJztcbmltcG9ydCB7IFBsdWdpbkxvYWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvcGx1Z2luLWxvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IEdldHRlciB9IGZyb20gJy4uLy4uL2Jhc2UvaW50ZXJmYWNlcyc7XG5kZWNsYXJlIGNvbnN0IEFNYXA6IGFueTtcblxuZXhwb3J0IG5hbWVzcGFjZSBBTWFwTWFya2VyQ2x1c3RlcmVyIHtcbiAgZXhwb3J0IGludGVyZmFjZSBTdHlsZU9iamVjdCB7XG4gICAgdXJsPzogc3RyaW5nO1xuICAgIHNpemU/OiBBTWFwLlNpemU7XG4gICAgb2Zmc2V0PzogQU1hcC5QaXhlbDtcbiAgICBpbWFnZU9mZnNldD86IEFNYXAuUGl4ZWw7XG4gICAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIHRleHRTaXplPzogbnVtYmVyO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiDogZrlkIjorqHnrpfml7bnvZHmoLznmoTlg4/ntKDlpKflsI/vvIzpu5jorqQ2MFxuICAgICAqL1xuICAgIGdyaWRTaXplPzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIOiBmuWQiOeahOacgOWwj+aVsOmHj+OAgum7mOiupOWAvOS4ujLvvIzljbPlsI/kuo4y5Liq54K55YiZ5LiN6IO95oiQ5Li65LiA5Liq6IGa5ZCIXG4gICAgICovXG4gICAgbWluQ2x1c3RlclNpemU/OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICog5pyA5aSn55qE6IGa5ZCI57qn5Yir77yM5aSn5LqO6K+l57qn5Yir5bCx5LiN6L+b6KGM55u45bqU55qE6IGa5ZCI44CC6buY6K6k5YC85Li6MThcbiAgICAgKi9cbiAgICBtYXhab29tPzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIOiBmuWQiOeCueeahOWbvuagh+S9jee9ruaYr+WQpuaYr+aJgOacieiBmuWQiOWGheeCueeahOS4reW/g+eCueOAgum7mOiupOS4uuWQplxuICAgICAqL1xuICAgIGF2ZXJhZ2VDZW50ZXI/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIOaMh+WumuiBmuWQiOWQjueahOeCueagh+iusOeahOWbvuagh+agt+W8j++8jOWPr+e8uuecge+8jOe8uuecgeaXtuS4uum7mOiupOagt+W8j1xuICAgICAqL1xuICAgIHN0eWxlcz86IFN0eWxlT2JqZWN0W107XG4gICAgLyoqXG4gICAgICog6K+l5pa55rOV55So5p2l5a6e546w6IGa5ZCI54K555qE6Ieq5a6a5LmJ57uY5Yi2XG4gICAgICovXG4gICAgcmVuZGVyQ2x1c3Rlck1hcmtlcj86IChvYmo6IHtcbiAgICAgIGNvdW50OiBudW1iZXI7XG4gICAgICBtYXJrZXJzOiBBTWFwLk1hcmtlcjxhbnk+W107XG4gICAgICBtYXJrZXI6IEFNYXAuTWFya2VyPGFueT47XG4gICAgfSkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiDngrnlh7vogZrlkIjngrnml7bvvIzmmK/lkKbmlaPlvIDvvIzpu5jorqTlgLzkuLrvvJp0cnVlXG4gICAgICovXG4gICAgem9vbU9uQ2xpY2s/OiBib29sZWFuO1xuICB9XG59XG5cbmNvbnN0IFRBRyA9ICdBbWFwTWFya2VyQ2x1c3Rlcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBbWFwTWFya2VyQ2x1c3RlcmVyU2VydmljZSBpbXBsZW1lbnRzIEdldHRlcjxhbnk+IHtcbiAgcHJpdmF0ZSBtYXJrZXJDbHVzdGVyZXI6IGFueTtcbiAgcHJpdmF0ZSBtYXJrZXJDbHVzdGVyZXIkID0gbmV3IFJlcGxheVN1YmplY3Q8YW55PigxKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFtYXBzOiBBTWFwU2VydmljZSxcbiAgICBwcml2YXRlIHBsdWdpbnM6IFBsdWdpbkxvYWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiDojrflj5bngrnogZrlkIhcbiAgICovXG4gIGdldCgpIHtcbiAgICByZXR1cm4gdGhpcy5tYXJrZXJDbHVzdGVyZXIkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIOWIm+W7uueCueiBmuWQiCBBTWFwLk1hcmtlckNsdXN0ZXJlclxuICAgKiBAcGFyYW0gb3B0aW9ucyDpgInpoblcbiAgICovXG4gIGNyZWF0ZShvcHRpb25zOiBBTWFwTWFya2VyQ2x1c3RlcmVyLk9wdGlvbnMpIHtcbiAgICByZXR1cm4gemlwKHRoaXMuYW1hcHMuZ2V0KCksIHRoaXMucGx1Z2lucy5sb2FkKCdBTWFwLk1hcmtlckNsdXN0ZXJlcicpKS5waXBlKFxuICAgICAgbWFwKChbbV0pID0+IHtcbiAgICAgICAgdGhpcy5tYXJrZXJDbHVzdGVyZXIgPSB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcihcbiAgICAgICAgICAoKSA9PiBuZXcgQU1hcC5NYXJrZXJDbHVzdGVyZXIobSwgW10sIG9wdGlvbnMpLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ25ldyBtYXJrZXJDbHVzdGVyZXIgY3JlYXRlZC4nKTtcbiAgICAgICAgdGhpcy5tYXJrZXJDbHVzdGVyZXIkLm5leHQodGhpcy5tYXJrZXJDbHVzdGVyZXIpO1xuICAgICAgICB0aGlzLm1hcmtlckNsdXN0ZXJlciQuY29tcGxldGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFya2VyQ2x1c3RlcmVyO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDplIDmr4HngrnogZrlkIhcbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5nZXQoKS5zdWJzY3JpYmUobSA9PiB7XG4gICAgICBtLmNsZWFyTWFya2VycygpO1xuICAgICAgbS5zZXRNYXAobnVsbCk7XG4gICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ21hcmtlckNsdXN0ZXJlciBkZXN0cm95ZWQuJyk7XG4gICAgICB0aGlzLm1hcmtlckNsdXN0ZXJlciA9IG51bGw7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==