qqmap-gl-typings
Version:
95 lines (77 loc) • 2.87 kB
TypeScript
// docs: https://lbs.qq.com/webApi/javascriptGL/glDoc/glDocCluster
declare namespace TMap {
class MarkerCluster implements MarkerClusterOptions {
constructor(options: MarkerClusterOptions);
/**
* 设置地图对象, 如果 map 为 null 意味着将点聚合图层从地图中移除
*/
setMap(map: Map | null): MarkerCluster;
/**
* 更新点数据, 如果参数为 null 或 undefined 不会做任何处理
*/
setGeometries(geometries?: PointGeometry[] | null): MarkerCluster;
/**
* 获取地图对象, 若为空返回 null
*/
getMap(): Map | null;
/**
* 获取图层的 id
*/
getId(): this;
/**
* 获取当前地图视野范围内, 聚合后的聚合簇数据, 聚合是异步操作,
* 可以绑定 cluster_changed 事件获取每次地图上最新的聚合簇
*/
getClusters(): ClusterInfo[];
/**
* 获取点数据
*/
getGeometries(): PointGeometry[];
/**
* 根据点数据 id 来获取点数据
*/
getGeometryById(id: string): PointGeometry;
/**
* 更新标注点数据, 如果 geometry 的 id 存在于聚合点的集合中, 会更新对 id 的数据, 如果之前不存在于集合中, 会作为新的点标注添加到集合中进行聚合,
* 如果参数为 null 或 undefined 不会做任何处理
*/
updateGeometries(geometry?: PointGeometry[] | null): this;
/**
* 向图层中添加标注点
* 如果 geometry 的 id 已经存在集合中, 则该 geometry 不会被重复添加
* 如果 geometry 没有 id 或者 id 不存在于集合中会被添加到集合中进行聚合
* 没有 id 的 geometry 会被赋予一个唯一 id
* 如果要添加到集合中的标注存在重复 id, 这些标注点会被重新分配 id
* 如果参数为 null 或 undefined 不会做任何处理
*/
add(geometries?: PointGeometry[] | null): this;
/**
* 移除指定 id 的标注点, 如果参数为 null 或 undefined 不会做任何处理
*/
remove(ids?: string[] | null): this;
on(
eventName: 'click',
listener: (evt: ClusterInfo[] | PointGeometry) => void
): this;
on(eventName: 'cluster_changed', listener: () => void): this;
/**
* 从 eventName 事件的监听器数组中移除指定的 listener
*/
off(eventName: 'cluster_changed' | 'click', listener: () => void): this;
}
interface ClusterInfo {
/**
* 聚合簇的位置点
*/
center: LatLng;
/**
* 该聚合簇内的点标记数据数组,
* 注: 该点标记不支持通过style更改样式
*/
geometries: PointGeometry[];
/**
* 聚合簇的边界范围
*/
bounds: LatLngBounds;
}
}