UNPKG

tianditu-types

Version:
100 lines (95 loc) 3.29 kB
declare namespace T { class MarkerClusterer extends OverlayBase<MarkerClustererEvents> { /** 创建一个点聚合组件 */ constructor(map: Map, opts: MarkerClustererOptions); /** 添加一个聚合的标记 */ addMarker(marker: Marker): void; /** 添加要聚合的标记数组 */ addMarkers(markers: Marker[]): void; /** 获取聚合的总数量 */ getClustersCount(): number; /** 从地图上彻底清除所有的标记 */ clearMarkers(): void; /** 获取网格大小 */ getGridSize(): number; /** 获取所有的标记数组 */ getMarkers(): Marker[]; /** 获取聚合的最大缩放级别 */ getMaxZoom(): number; /** 获取单个聚合的最小数量 */ getMinClusterSize(): number; /** 获取聚合的样式风格集合 */ getStyles(): MarkerClustererStyle[]; /** 删除单个标记 */ removeMarker(marker: Marker): void; /** 删除一组标记 */ removeMarkers(markers: Marker[]): void; /** 设置网格大小 */ setGridSize(gridSize: number): void; /** 设置聚合的最大缩放级别 */ setMaxZoom(maxZoom: number): void; /** 设置聚合的样式风格集合 */ setStyles(styles: MarkerClustererStyle[]): void; } interface MarkerClustererOptions { /** 要聚合的标注点数组 */ markers?: Marker[]; /** 聚合计算时网格的像素大小,默认60 */ girdSize?: number; /** 最大的聚合级别,大于该级别就不进行聚合 */ maxZoom?: number; /** 自定义聚合后的图标风格 */ styles?: MarkerClustererStyle[]; } interface MarkerClustererEvents extends OverlayEvents<MarkerClusterer, LngLat, Marker> { dragstart(e: Pick<MarkerClustererEvent, "type" | "target" | "layer">): void; drag(e: Pick<MarkerClustererEvent, "type" | "target" | "lnglat" | "layer">): void; dragend(e: Pick<MarkerClustererEvent, "type" | "target" | "lnglat" | "layer">): void; clusterclick(e: MarkerClustererEvent): void; } type MarkerClustererEvent = OverlayEvent<MarkerClusterer, LngLat, Marker>; /** * ``` * [ * { * url: "http://api.tianditu.gov.cn/img/map/cluster/heart30.png", * size: [30, 26], //图片大小 * offset: new T.Point(-15, -13), //显示图片的偏移量 * textColor: "#000000", //显示数字的颜色 * textSize: 8, //显示文字的大小 * range: [0, 50] * }, * { * url: "http://api.tianditu.gov.cn/img/map/cluster/heart40.png", * size: [42, 36], * offset: new T.Point(-20, -17), * textColor: "#ff0000", * textSize: 10, * range: [50, 400] * }, * { * url: "http://api.tianditu.gov.cn/img/map/cluster/heart50.png", * size: [52, 46], * soffset: new T.Point(-10, -22), * textColor: "white", * textSize: 12, * range: [400, 500] * } * ]; * ``` */ interface MarkerClustererStyle { /** 图片地址 */ url?: string; /** 图片大小 */ size?: number[]; /** 显示图片的偏移量 */ offset?: Point; /** 显示数字的颜色 */ textColor?: string; /** 显示文字的大小 */ textSize?: number; /** 显示图片的数字范围 */ range?: number[]; } }