declare namespace TMap { type MultiPolylineEvtName = | 'click' | 'dblclick' | 'rightclick' | 'mousedown' | 'mouseup' | 'mousemove' | 'mouseover' | 'mouseout' | 'hover' | 'touchstart' | 'touchmove' | 'touchend'; /** * 表示地图上的多个折线, 可以自定义每个折线的样式 */ class MultiPolyline implements MultiPolylineOptions { constructor(options: MultiPolylineOptions); /** * 设置地图对象, 如果 map 为 null 意味着将多折线同时从地图中移除 */ setMap(map: Map | null): MultiPolyline; /** * 设置图层绘制顺序 */ setZIndex(zIndex: number): MultiPolyline; /** * 更新折线数据, 如果参数为 null 或 undefined 不会做任何处理 */ setGeometries(geometries?: PolylineGeometry[] | null): MultiPolyline; /** * 设置 MultiPolyline 图层相关样式信息, 如果参数为 null 或 undefined 不会做任何处理 */ setStyles(styles?: MultiPolylineStyleHash | null): MultiPolyline; /** * 设置图层是否可见 */ setVisible(visible: boolean): MultiPolyline; /** * 获取地图对象, 若为空返回 null */ getMap(): Map | null; /** * 获取折线数据 */ getGeometries(): PolylineGeometry[]; /** * 获取图层相关样式信息 */ getStyles(): MultiPolylineStyleHash; /** * 获取可见状态 */ getVisible(): boolean; /** * 获取图层绘制顺序 */ getZIndex(): number; /** * 获取图层的 id */ getId(): MultiPolyline; /** * 根据折线数据 id 来获取点数据 */ getGeometryById(id: string): PolylineGeometry; /** * 更新折线数据, 如果 geometry 的 id 存在于集合中, 会更新对应id的数据, * 如果之前不存在于集合中, 会作为新的折线添加到集合中, * 如果参数为 null 或 undefined 不会做任何处理 */ updateGeometries(geometry?: PolylineGeometry[] | null): MultiPolyline; /** * 向图层中添加折线, 如果 geometry 的 id 已经存在集合中, * 则该 geometry 不会被重复添加, 如果 geometry 没有 id 或者 id 不存在于集合中会被添加到集合, * 没有 id 的 geometry 会被赋予一个唯一 id, 如果要添加到集合中的折线存在重复 id, * 这些折线会被重新分配 id, 如果参数为 null 或 undefined 不会做任何处理 */ add(geometries?: PolylineGeometry[] | null): MultiPolyline; /** * 移除指定 id 的折线, 如果参数为 null 或 undefined 不会做任何处理 */ remove(ids?: string[] | null): MultiPolyline; /** * 添加listener到eventName事件的监听器数组中 */ on( eventName: MultiPolylineEvtName, listener: (evt: GeometryOverlayEvent) => void ): MultiPolyline; /** * 从 eventName 事件的监听器数组中移除指定的 listener */ off( eventName: MultiPolylineEvtName, listener: (evt: GeometryOverlayEvent) => void ): MultiPolyline; } type MultiPolylineStyleHash = Record; /** * 表示应用于折线图层的样式类型 */ class PolylineStyle implements PolylineStyleOptions { constructor(options: PolylineStyleOptions); } /** * 折线数据 */ interface PolylineGeometry { /** * 折线图形数据的标志信息, 不可重复, 若id重复后面的id会被重新分配一个新id, 若没有会随机生成一个 */ id: string; /** * 对应 MultiPolylineStyleHash 中的样式 id, 如果样式表中没有包含 geometry 指定的 styleId, 则该 geometry 不会被绘制出来 */ styleId: string; /** * 折线的位置信息, 可以传入 [latLng1, latLng2, latLng3] 表示一条折线, * 另外一条折线可能由多个不相连的线组成一个逻辑单位, 如: [[latLng1, latLng2, latLng3], [latLng4, latLng5, latLng6]] */ paths: LatLng[] | LatLng[][]; /** * 多颜色折线的信息 */ rainbowPaths: { path: latLng[]; color?: string; borderColor?: string; }[]; /** * 折线的属性数据 */ properties: Record; } type MultiPloygonEvtName = | 'click' | 'dblclick' | 'mousedown' | 'mouseup' | 'mousemove' | 'hover' | 'touchstart' | 'touchmove' | 'touchend'; /** * 表示地图上的多个多边形,可以自定义每个多边形的样式 */ class MultiPolygon implements MultiPolygonOptions { constructor(options: MultiPolygonOptions); /** * 设置地图对象, 如果 map 为 null 意味着将多多边形同时从地图中移除 */ setMap(map: Map | null): MultiPolygon; /** * 设置图层绘制顺序 */ setZIndex(zIndex: number): MultiPolygon; /** * 更新多边形数据, 如果参数为 null 或 undefined 不会做任何处理 */ setGeometries(geometries?: PolygonGeometry[] | null): MultiPolygon; /** * 设置 MultiPolygon 图层相关样式信息, 如果参数为 null 或 undefined 不会做任何处理 */ setStyles(styles?: MultiPolygonStyleHash | null): MultiPolygon; /** * 设置图层是否可见 */ setVisible(visible: boolean): MultiPolygon; /** * 获取地图对象, 若为空返回 null */ getMap(): Map | null; /** * 获取多边形数据 */ getGeometries(): PolygonGeometry[]; /** * 获取图层相关样式信息 */ getStyles(): MultiPolygonStyleHash; /** * 获取可见状态 */ getVisible(): boolean; /** * 获取图层绘制顺序 */ getZIndex(): number; /** * 获取图层的 id */ getId(): MultiPolygon; /** * 根据多边形数据 id 来获取点数据 */ getGeometryById(id: string): PolygonGeometry; /** * 更新多边形数据, 如果 geometry 的 id 存在于集合中, 会更新对 id 的数据, 如果之前不存在于集合中, 会作为新的多边形添加到集合中, 如果参数为 null 或 undefined 不会做任何处理 */ updateGeometries(geometry?: PolygonGeometry[] | null): MultiPolygon; /** * 向图层中添加多边形, 如果 geometry 的 id 已经存在集合中, * 则该 geometry 不会被重复添加, 如果 geometry 没有 id 或者 id 不存在于集合中会被添加到集合, * 没有 id 的 geometry 会被赋予一个唯一id, 如果要添加到集合中的多边形存在重复id, * 这些多边形会被重新分配id, 如果参数为 null 或 undefined 不会做任何处理 */ add(geometries?: PolygonGeometry[] | null): MultiPolygon; /** * 移除指定 id 的多边形, 如果参数为 null 或 undefined 不会做任何处理 */ remove(ids?: string[] | null): MultiPolygon; /** * 添加 listener 到 eventName 事件的监听器数组中 */ on( eventName: MultiPloygonEvtName, listener: (evt: GeometryOverlayEvent) => void ): MultiPolygon; /** * 从 eventName 事件的监听器数组中移除指定的 listener */ off( eventName: MultiPloygonEvtName, listener: (evt: GeometryOverlayEvent) => void ): MultiPolygon; } type MultiPolygonStyleHash = Record< string, PolygonStyle | ExtrudablePolygonStyle >; class PolygonStyle implements PolygonStyleOptions { constructor(options: PolygonStyleOptions); } /** * 表示应用于有立体拉伸需求的多边形的样式类型, * 拔起面块的边线不支持设置宽度永远为 1 像素宽度 */ class ExtrudablePolygonStyle implements ExtrudablePolygonStyleOptions { constructor(options: ExtrudablePolygonStyleOptions); } /** * 多边形数据 */ interface PolygonGeometry { /** * 多边形图形数据的标志信息, 不可重复, * 若 id 重复后面的 id 会被重新分配一个新id, * 若没有会随机生成一个 */ id: string; /** * 对应 MultiPolygonStyleHash 中的样式 id, * 如果样式表中没有包含 geometry 指定的 styleId, * 则该 geometry 不会被绘制出来 */ styleId: string; /** * 多边形的位置信息, 可以传入 [latLng1, latLng2, latLng3, latLng5, latLng1] 这种简单多边形, * 也可以传入带洞多边形 [[latLng1, latLng2, latLng3, latLng5, latLng1], [latLng6, latLng8, latLng9, latLng6], [latLng10, latLng11, latLng10]] * 这个多边形包含一个外环 [latLng1, latLng2, latLng3, latLng5, latLng1] 和两个洞 [latLng6, latLng8, latLng9, latLng6], [latLng10, latLng11, latLng10], * 另外一个多边形可能有多个不相邻的多边形组成一个逻辑主体, 比如南沙群岛就是由多个分离的多边形组成一个主体, 一个岛屿可能存在多个岛中湖形成带洞多边形, * 示例: [[[latLng1, latLng2, latLng3, latLng5, latLng1], [latLng6, latLng8, latLng9, latLng6], [latLng10, latLng11, latLng10]], [[latLng11, latLng12, latLng13, latLng14, latLng11]], [[latLng15, latLng16, latLng17, latLng18, latLng15]]], * 这个多边形主体中包含了三个多边形, 其中第一个多边形包含一个外环 [latLng1, latLng2, latLng3, latLng5, latLng1] 和两个洞 [latLng6, latLng8, latLng9, latLng6], [latLng10, latLng11, latLng10], * 第二和第三个多边形都是不带洞的简单多边形 */ paths: LatLng[] | LatLng[][] | LatLng[][][]; /** * 多边形的图层内绘制顺序 */ rank: number; /** * 多边形的属性数据 */ properties: Record; } /** * 表示地图上的多个矩形, 可以自定义每个矩形的样式 */ class MultiRectangle { constructor(options: MultiRectangleOptions); /** * 设置地图对象, 如果 map 为 null 意味着将多矩形同时从地图中移除 */ setMap(map: Map | null): this; /** * 设置图层绘制顺序 */ setZIndex(zIndex: number): this; /** * 更新多矩形数据, 如果参数为 null 或 undefined 不会做任何处理 */ setGeometries(geometries?: RectangleGeometry[] | null): this; /** * 设置 MultiRectangle 图层相关样式信息, 如果参数为 null 或 undefined 不会做任何处理 */ setStyles(styles?: MultiRectangleStyleHash | null): this; /** * 设置图层是否可见 */ setVisible(visible: boolean): this; /** * 获取地图对象, 若为空返回 null */ getMap(): Map | null; /** * 获取多矩形数据 */ getGeometries(): RectangleGeometry[]; /** * 获取图层相关样式信息 */ getStyles(): MultiRectangleStyleHash; /** * 获取可见状态 */ getVisible(): boolean; /** * 获取图层绘制顺序 */ getZIndex(): number; /** * 根据多矩形数据 id 来获取点数据 */ getGeometryById(id: string): RectangleGeometry; /** * 更新多矩形数据, 如果geometry的id存在于集合中, * 会更新对 id 的数据, 如果之前不存在于集合中, 会作为新的矩形添加到集合中, * 如果参数为 null 或 undefined 不会做任何处理 */ updateGeometries(geometry?: RectangleGeometry[] | null): this; /** * 向图层中添加矩形, 如果 geometry 的 id 已经存在集合中, * 则该 geometry 不会被重复添加, 如果 geometry 没有 id 或者 id 不存在于集合中会被添加到集合, * 没有 id 的 geometry 会被赋予一个唯一 id, 如果要添加到集合中的多边形存在重复 id, 这些多边形会被重新分配 id, * 如果参数为 null 或 undefined 不会做任何处理 */ add(geometries?: RectangleGeometry[] | null): this; /** * 移除指定 id 的矩形, 如果参数为 null 或 undefined 不会做任何处理 */ remove(ids?: string[] | null): this; destroy(): void; /** * 根据 geometry 获取矩形的左下角和右上角顶点经纬度坐标 */ static getBounds(geometry: RectangleGeometry): LatLngBounds; } type MultiRectangleStyleHash = Record; /** * 表示应用于矩形图层的样式类型 */ class RectangleStyle implements RectangleStyleOptions { constructor(options: RectangleStyleOptions); } /** * 多矩形数据 */ interface RectangleGeometry { /** * 多矩形图形数据的标志信息, 不可重复, * 若 id 重复后面的id会被重新分配一个新 id, 若没有会随机生成一个 */ id: string; /** * 对应 MultiRectangleStyleHash 中的样式 id, 如果样式表中没有包含 geometry 指定的 styleId, 则该 geometry 不会被绘制出来 */ styleId?: string; /** * 矩形的中心点位置 */ center?: LatLng; /** * 矩形的宽, 正数, 单位为米 */ width?: number; /** * 矩形的高, 正数, 单位为米 */ height?: number; /** * 矩形的属性数据 */ properties?: Record; /** * 矩形的图层内绘制顺序 */ rank?: number; } /** * 表示地图上的多个圆形, 可以自定义每个圆形的样式 */ class MultiCircle { constructor(options: MultiCircleOptions); /** * 设置地图对象, 如果 map 为 null 意味着将多圆同时从地图中移除 */ setMap(map: Map | null): this; /** * 设置图层绘制顺序 */ setZIndex(zIndex: number): this; /** * 更新多圆数据, 如果参数为 null 或 undefined 不会做任何处理 */ setGeometries(geometries: CircleGeometry[] | null): this; /** * 设置 MultiCircle 图层相关样式信息, 如果参数为 null 或 undefined 不会做任何处理 */ setStyles(styles?: MultiCircleStyleHash): this; /** * 设置图层是否可见 */ setVisible(visible: boolean): this; /** * 获取地图对象, 若为空返回 null */ getMap(): Map | null; /** * 获取多圆数据 */ getGeometries(): CircleGeometry[]; /** * 获取图层相关样式信息 */ getStyles(): MultiCircleStyleHash; /** * 获取可见状态 */ getVisible(): boolean; /** * 获取图层绘制顺序 */ getZIndex(): number; /** * 获取图层的 id */ getId(): MultiCircle; /** * 根据多圆数据 id 来获取点数据 */ getGeometryById(id: string): CircleGeometry; /** * 更新多圆数据, 如果 geometry 的 id 存在于集合中, 会更新对 id 的数据, * 如果之前不存在于集合中, 会作为新的圆添加到集合中, 如果参数为 null 或 undefined 不会做任何处理 */ updateGeometries(geometry?: CircleGeometry[] | null): this; /** * 向图层中添加圆, 如果 geometry 的 id 已经存在集合中, 则该 geometry 不会被重复添加, * 如果 geometry 没有 id 或者 id 不存在于集合中会被添加到集合, * 没有 id 的 geometry 会被赋予一个唯一 id, 如果要添加到集合中的多边形存在重复 id, * 这些多边形会被重新分配id, 如果参数为 null 或 undefined 不会做任何处理 */ add(geometries?: CircleGeometry[] | null): this; /** * 移除指定 id 的圆, 如果参数为 null 或 undefined 不会做任何处理 */ remove(ids?: string[] | null): this; } type MultiCircleStyleHash = Record; interface CircleGeometry { /** * 多圆图形数据的标志信息, 不可重复, * 若 id 重复后面的 id 会被重新分配一个新id, * 若没有会随机生成一个 */ id?: string; /** * 对应 MultiCircleStyleHash 中的样式 id, * 如果样式表中没有包含 geometry 指定的 styleId, * 则该 geometry 不会被绘制出来 */ styleId?: string; /** * 圆的中心点位置 */ center?: LatLng; /** * 圆的半径, 正数, 单位为米 */ radius?: number; /** * 圆的属性数据 */ properties?: Record; } /** * 表示应用于圆图层的样式类型 */ class CircleStyle { constructor(options: CircleStyleOptions); } /** * 表示地图上的多个椭圆, 可以自定义每个椭圆的样式 */ class MultiEllipse { constructor(options: MultiEllipseOptions); /** * 设置地图对象, 如果 map 为 null 意味着将多椭圆同时从地图中移除 */ setMap(map: Map | null): this; /** * 设置图层绘制顺序 */ setZIndex(zIndex: number): MultiEllipse; /** * 更新多椭圆数据, 如果参数为 null 或 undefined 不会做任何处理 */ setGeometries(geometries?: EllipseGeometry[]): this; /** * 设置 MultiEllipse 图层相关样式信息, 如果参数为 null 或 undefined 不会做任何处理 */ setStyles(styles?: MultiEllipseStyleHash): this; /** * 设置图层是否可见 */ setVisible(visible: boolean): this; /** * 获取地图对象, 若为空返回 null */ getMap(): Map | null; /** * 获取多椭圆数据 */ getGeometries(): EllipseGeometry[]; /** * 获取图层相关样式信息 */ getStyles(): MultiEllipseStyleHash; /** * 获取可见状态 */ getVisible(): boolean; /** * 获取图层绘制顺序 */ getZIndex(): number; /** * 根据多椭圆数据 id 来获取点数据 */ getGeometryById(id: string): EllipseGeometry; /** * 更新多椭圆数据, 如果 geometry 的 id 存在于集合中, 会更新对 id 的数据, * 如果之前不存在于集合中, 会作为新的椭圆添加到集合中, 如果参数为 null 或 undefined 不会做任何处理 */ updateGeometries(geometry?: EllipseGeometry[] | null): this; /** * 向图层中添加椭圆, 如果 geometry 的 id 已经存在集合中, * 则该 geometry 不会被重复添加, 如果 geometry 没有 id 或者 id 不存在于集合中会被添加到集合, * 没有 id 的 geometry 会被赋予一个唯一id, 如果要添加到集合中的多边形存在重复id, * 这些多边形会被重新分配 id, 如果参数为 null 或 undefined 不会做任何处理 */ add(geometries?: EllipseGeometry[] | null): this; /** * 移除指定 id 的椭圆, 如果参数为 null 或 undefined 不会做任何处理 */ remove(ids?: string[] | null): this; /** * 销毁图层对象 */ destroy(); } type MultiEllipseStyleHash = Record; /** * 表示应用于椭圆图层的样式类型 */ class EllipseStyle implements EllipseStyleOptions { constructor(options: EllipseStyleOptions); } interface EllipseGeometry { /** * 多椭圆图形数据的标志信息, 不可重复, 若 id 重复后面的 id 会被重新分配一个新 id, * 若没有会随机生成一个 */ id?: string; /** * 对应 MultiEllipseStyleHash 中的样式 id, 如果样式表中没有包含 geometry 指定的 styleId, * 则该 geometry 不会被绘制出来 */ styleId?: string; /** * 椭圆的中心点位置 */ center?: LatLng; /** * 椭圆的主半径, 正数, 单位为米 */ majorRadius?: number; /** * 椭圆的辅半径, 正数, 单位为米 */ minorRadius?: number; /** * 椭圆的属性数据 */ properties?: Record; /** * 椭圆的图层内绘制顺序 */ rank?: number; } }