ngx-amap
Version:
[][npm-badge-url] [][npm-badge-url] [][ci-url]
202 lines • 13 kB
JavaScript
/**
* @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==