declare namespace TMap { type LabelEvtName = | 'click' | 'dblclick' | 'mousedown' | 'mouseup' | 'mousemove' | 'hover' | 'touchstart' | 'touchmove' | 'touchend'; /** * 表示地图上的多个文本标注, 可以自定义每个文本标注的样式 * docs: https://lbs.qq.com/webApi/javascriptGL/glDoc/glDocLabel */ class MultiLabel implements MultiLabelOptions { constructor(options: MultiLabelOptions); /** * 设置地图对象, 如果 map 为 null 意味着将多个文本标注同时从地图中移除 */ setMap(map: Map | null): this; /** * 更新多文本标注数据, 如果参数为 null 或 undefined 不会做任何处理 */ setGeometries(geometries?: LabelGeometry[] | null): this; /** * 设置 MultiLabel 图层相关样式信息, 如果参数为 null 或 undefined 不会做任何处理 */ setStyles(styles?: MultiLabelStyleHash | null): this; /** * 获取地图对象, 若为空返回 null */ getMap(): Map | null; /** * 获取图层的 id */ getId(): this; /** * 获取多文本标注数据 */ getGeometries(): LabelGeometry[]; /** * 获取图层相关样式信息 */ getStyles(): MultiLabelStyleHash; /** * 设置图层是否可见 */ setVisible(visible: boolean): this; /** * 获取可见状态 */ getVisible(): boolean; /** * 根据多文本数据 id 来获取点数据 */ getGeometryById(id: string): LabelGeometry; /** * 更新多文本数据, 如果 geometry 的 id 存在于集合中, * 会更新对 id 的数据, 如果之前不存在于集合中, 会作为新的文本标注添加到集合中, * 如果参数为 null 或 undefined 不会做任何处理 */ updateGeometries(geometry?: LabelGeometry[] | null): this; /** * 向图层中添加文本, 如果 geometry 的 id 已经存在集合中, * 则该 geometry 不会被重复添加, 如果 geometry 没有 id 或者 id 不存在于集合中会被添加到集合, * 没有 id 的 geometry 会被赋予一个唯一 id, 如果要添加到集合中的文本存在重复 id, 这些文本会被重新分配 id, * 如果参数为 null 或 undefined 不会做任何处理 */ add(geometries?: LabelGeometry[] | null): this; /** * 移除指定 id 的文本, 如果参数为 null 或 undefined 不会做任何处理 */ remove(ids?: string[]): this; /** * 添加 listener 到 eventName 事件的监听器数组中 */ on(eventName: LabelEvtName, listener: (evt: GeometryOverlayEvent) => void); /** * 从 eventName 事件的监听器数组中移除指定的 listener。 */ off(eventName: LabelEvtName, listener: (evt: GeometryOverlayEvent) => void); } type MultiLabelStyleHash = Record; class LabelStyle implements LabelStyleOptions { constructor(options: LabelStyleOptions); } interface LabelGeometry { /** * 点图形数据的标志信息, 不可重复, * 若 id 重复后面的 id 会被重新分配一个新 id, * 若没有会随机生成一个 */ id?: string; /** * 对应 MultiLabelStyleHash 中的样式 id, 如果样式表中没有包含 geometry 指定的 styleId, 则该 geometry 不会被绘制出来 */ styleId?: string; /** * 标注点位置 */ position?: LatLng; /** * 标注文本 */ content?: string; /** * 当开启文本碰撞时, 值越大碰撞优先级越高关闭碰撞时, 表示标注文本的图层内绘制顺序 */ rank?: number; /** * 标注点的属性数据 */ properties?: Record; } }