UNPKG

@uiw/react-baidu-map-types

Version:
1,484 lines (1,479 loc) 41.7 kB
/// <reference path="./base.d.ts" /> /// <reference path="./core.d.ts" /> /// <reference path="./rightmenu.d.ts" /> declare namespace BMap { class Overlay {} interface Overlay { initialize?(map: Map): HTMLElement; isVisible?(): boolean; draw?(): void; show?(): void; hide?(): void; } type SymbolShapeType = number; /** * 此类表示地图上一个图像标注。 */ class Marker { /** * 创建一个图像标注实例。point参数指定了图像标注所在的地理位置 * @param point * @param opts */ constructor(point: Point, opts?: MarkerOptions); } interface MarkerOptions { /** * 标注的位置偏移值 */ offset?: Size; /** * 标注所用的图标对象 */ icon?: Icon; /** * 是否在调用map.clearOverlays清除此覆盖物,默认为true */ enableMassClear?: boolean; /** * 是否启用拖拽,默认为false */ enableDragging?: boolean; /** * 是否响应点击事件。默认为true */ enableClicking?: boolean; /** * 拖拽标注时,标注是否开启离开地图表面效果。默认为false */ raiseOnDrag?: boolean; /** * 拖拽标注时的鼠标指针样式。此属性值需遵循CSS的cursor属性规范 */ draggingCursor?: string; /** * 旋转角度 */ rotation?: number; /** * 阴影图标 */ shadow?: Icon; /** * 鼠标移到marker上的显示内容 */ title?: string; } interface Marker extends Overlay { /** * 打开信息窗 */ openInfoWindow(infoWnd: InfoWindow): void; /** * 关闭信息窗 */ closeInfoWindow(): void; /** * 设置标注所用的图标对象 */ setIcon(icon: Icon): void; /** * 返回标注所用的图标对象 */ getIcon(): Icon; /** * 设置标注的地理坐标 */ setPosition(position: Point): void; /** * 返回标注的地理坐标 */ getPosition(): Point; /** * 设置标注的偏移值 */ setOffset(offset: Size): void; /** * 返回标注的偏移值 */ getOffset(): Size; /** * 返回标注的文本标注 */ getLabel(): Label; /** * 为标注添加文本标注 */ setLabel(label: Label): void; /** * 设置标注的标题,当鼠标移至标注上时显示此标题 */ setTitle(title: string): void; /** * 返回标注的标题 */ getTitle(): string; /** * 将标注置于其他标注之上。默认情况下,纬度较低的标注会覆盖在纬度较高的标注之上,从而形成一种立体效果。通过此方法可使某个标注覆盖在其他所有标注之上。 * 注意:如果在多个标注对象上调用此方法,则这些标注依旧按照纬度产生默认的覆盖效果 */ setTop(isTop: boolean): void; /** * 开启标注拖拽功能 */ enableDragging(): void; /** * 关闭标注拖拽功能 */ disableDragging(): void; /** * 允许覆盖物在map.clearOverlays方法中被清除 */ enableMassClear(): void; /** * 禁止覆盖物在map.clearOverlays方法中被清除 */ disableMassClear(): void; /** * 设置覆盖物的zIndex */ setZIndex(zIndex: number): void; /** * 返回覆盖物所在的map对象 */ getMap(): MapProps; /** * 添加右键菜单 */ addContextMenu(menu: ContextMenu): void; /** * 移除右键菜单 */ removeContextMenu(menu: ContextMenu): void; /** * 设置标注动画效果。如果参数为null,则取消动画效果。该方法需要在addOverlay方法后设置 */ setAnimation(animation?: Animation | null): void; /** * 设置点的旋转角度 */ setRotation(rotation: number): void; /** * 获取点的旋转角度 */ getRotation(): number; /** * 设置标注阴影图标 */ setShadow(shadow: Icon): void; /** * 获取标注阴影图标 */ getShadow(): Icon; /** * 添加事件监听函数 */ addEventListener(event: string, handler: Function): void; /** * 移除事件监听函数 */ removeEventListener(event: string, handler: Function): void; } interface MarkerEvents { /** * 点击标注图标后会触发此事件 */ onClick?(event: { type: string; target: any }): void; /** * 双击标注图标后会触发此事件 */ onDblClick?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 鼠标在标注图上按下触发此事件 */ onMouseDown?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 鼠标在标注图上释放触发此事件 */ onMouseUp?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 鼠标离开标注时触发此事件 */ onMouseOut?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 当鼠标进入标注图标区域时会触发此事件 */ onMouseOver?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 移除标注时触发 */ onRemove?(event: { type: string; target: any }): void; /** * 信息窗在此标注上关闭时触发此事件 */ onInfowindowClose?(event: { type: string; target: any }): void; /** * 信息窗在此标注上打开时触发此事件 */ onInfowindowOpen?(event: { type: string; target: any }): void; /** * 开始拖拽标注时触发此事件 */ onDragStart?(event: { type: string; target: any }): void; /** * 拖拽标注过程中触发此事件 */ onDragging?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 拖拽结束时触发此事件 */ onDragEnd?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 右键点击标注时触发此事件 */ onRightClick?(event: { type: string; target: any }): void; } interface SymbolOptions { anchor?: Size; fillColor?: string; fillOpacity?: number; scale?: number; rotation?: number; strokeColor?: string; strokeOpacity?: number; strokeWeight?: number; } class IconSequence { constructor(symbol: Symbol, offset?: string, repeat?: string, fixedRotation?: boolean); } interface PointCollection extends Overlay { /** * 设置要在地图上展示的点坐标集合 * @param points */ setPoints(points: Point[]): void; /** * 点的样式,包括:大小"size"(可选,默认正常尺寸10*10px,SizeType类型), * 形状"shape"(可选,默认圆形,ShapeType类型), * 颜色"color"(可选,字符串类型) */ setStyles(styles: PointCollectionOption): void; /** * 清除海量点 */ clear(): void; /** * 添加事件监听函数 * @param event * @param handler */ addEventListener(event: string, handler: Callback): void; /** * 移除事件监听函数 * @param event * @param handler */ removeEventListener(event: string, handler: Callback): void; } /** * 此类表示海量点类,利用该类可同时在地图上展示万级别的点,目前仅适用于html5浏览器。 */ class PointCollection { /** * 创建海量点类。points为点的坐标集合,opts为点的绘制样式 * @param points * @param opts */ constructor(points: Point[], opts?: PointCollectionOption); } interface PointCollectionEvents { /** * 鼠标点击点时会触发此事件 */ onClick?: (event: { type: string; target: any; point: Point }) => void; /** * 鼠标移入点时会触发该事件 */ onMouseOver?: (event: { type: string; target: any; point: Point }) => void; /** * 鼠标移出点时会触发该事件 */ onMouseOut?: (event: { type: string; target: any; point: Point }) => void; } interface PointCollectionOption { /** * 海量点的预设形状 */ shape?: ShapeType; /** * 海量点的颜色,默认为'#fa937e',同时支持颜色字符串, * 如'red'; * 哈希字符串: 如 `#000000`; * rgb字符串: 如 `rgb(0,0,0)`; * rgba字符串: 如 `rgb(255,0,0,0.1)`; * hsl字符串: 如 `hsl(0,100%,50%)`; * hsla字符串: 如 `hsla(0,100%,50%,0.4)` * @default BMAP_POINT_SHAPE_WATERDROP */ color?: string; /** * 海量点的预设尺寸 * @default BMAP_POINT_SIZE_SMALL */ size?: SizeType; } interface InfoWindowEvent { /** * 信息窗口被关闭时触发此事件 */ onClose?: (event: { type: string; target: any; point: Point }) => void; /** * 信息窗口被打开时触发此事件 */ onOpen?: (event: { type: string; target: any; point: Point }) => void; /** * 信息窗口最大化后触发此事件 */ onMaximize?: (event: { type: string; target: any }) => void; /** * 信息窗口还原时触发此事件 */ onRestore?: (event: { type: string; target: any }) => void; /** * 点击信息窗口的关闭按钮时触发此事件 */ onClickclose?: (event: { type: string; target: any }) => void; } interface InfoWindow extends Overlay { /** * 设置信息窗口的宽度,单位像素。取值范围:220 - 730 */ setWidth(width: number): void; /** * 设置信息窗口的高度,单位像素。取值范围:60 - 650 */ setHeight(height: number): void; /** * 重绘信息窗口,当信息窗口内容发生变化时进行调用 */ redraw(): void; /** * 设置信息窗口标题。支持HTML内容。1.2版本开始title参数支持传入DOM结点 */ setTitle(title: string | HTMLElement): void; /** * 返回信息窗口标题 */ getTitle(): string | HTMLElement; /** * 设置信息窗口内容。支持HTML内容。1.2版本开始content参数支持传入DOM结点 * @param content */ setContent(content: string | HTMLElement): void; /** * 返回信息窗口内容 */ getContent(): string | HTMLElement; /** * 返回信息窗口的位置 */ getPosition(): Point; /** * 启用窗口最大化功能。需要设置最大化后信息窗口里的内容,该接口才生效 */ enableMaximize(): void; /** * 禁用窗口最大化功能 */ disableMaximize(): void; /** * 返回信息窗口的打开状态 */ isOpen(): boolean; /** * 信息窗口最大化时所显示内容,支持HTML内容 * @param content */ setMaxContent(content: string): void; /** * 最大化信息窗口 */ maximize(): void; /** * 还原信息窗口 */ restore(): void; /** * 开启打开信息窗口时地图自动平移 */ enableAutoPan(): void; /** * 关闭打开信息窗口时地图自动平移 */ disableAutoPan(): void; /** * 开启点击地图时关闭信息窗口 */ enableCloseOnClick(): void; /** * 关闭点击地图时关闭信息窗口 */ disableCloseOnClick(): void; /** * 添加事件监听函数 * @param event * @param handler */ addEventListener(event: string, handler: Callback): void; /** * 移除事件监听函数 * @param event * @param handler */ removeEventListener(event: string, handler: Callback): void; } /** * 此类表示地图上包含信息的窗口。 */ class InfoWindow { /** * 创建一个信息窗实例,其中 content 支持HTML内容。 * 1.2 版本开始content参数支持传入DOM结点 * @param content * @param opts */ constructor(content: string | HTMLElement, opts?: InfoWindowOptions); } interface InfoWindowOptions { /** * 信息窗宽度,单位像素。取值范围:0, 220 - 730。 * 如果您指定宽度为0,则信息窗口的宽度将按照其内容自动调整 */ width?: number; /** * 信息窗高度,单位像素。取值范围:0, 60 - 650。 * 如果您指定高度为0,则信息窗口的高度将按照其内容自动调整 */ height?: number; /** * 信息窗最大化时的宽度,单位像素。取值范围:220 - 730 */ maxWidth?: number; /** * 信息窗位置偏移值。默认情况下在地图上打开的信息窗底端的尖角将指向其地理坐标, * 在标注上打开的信息窗底端尖角的位置取决于标注所用图标的 infoWindowOffset 属性值, * 您可以为信息窗添加偏移量来改变默认位置 */ offset?: Size; /** * 信息窗标题文字,支持HTML内容 */ title?: string | HTMLElement; /** * 是否开启信息窗口打开时地图自动移动(默认开启) */ enableAutoPan?: boolean; /** * 是否开启点击地图关闭信息窗口(默认开启) */ enableCloseOnClick?: boolean; /** * 是否在信息窗里显示短信发送按钮(默认开启) */ enableMessage?: boolean; /** * 自定义部分的短信内容,可选项。完整的短信内容包括:自定义部分+位置链接,不设置时,显示默认短信内容。短信内容最长为140个字 */ message?: string; } /** * 此类表示一个多边形覆盖物。 */ class Polygon { /** * 创建多边形覆盖物 * @param points * @param opts */ constructor(points: Point[], opts?: PolygonOptions); } interface PolygonOptions { /** * 边线颜色 */ strokeColor?: string; /** * 填充颜色。当参数为空时,折线覆盖物将没有填充效果 */ fillColor?: string; /** * 边线的宽度,以像素为单位 */ strokeWeight?: number; /** * 边线透明度,取值范围0 - 1 */ strokeOpacity?: number; /** * 填充的透明度,取值范围0 - 1 */ fillOpacity?: number; /** * 边线的样式,solid或dashed */ strokeStyle?: string; /** * 是否在调用map.clearOverlays清除此覆盖物,默认为true */ enableMassClear?: boolean; /** * 是否启用线编辑,默认为false */ enableEditing?: boolean; /** * 是否响应点击事件,默认为true */ enableClicking?: boolean; } interface Polygon extends Overlay { /** * 设置多边型的点数组 * @param path */ setPath(path: Point[]): void; /** * 返回多边型的点数组 */ getPath(): Point[]; /** * 设置多边型的边线颜色,参数为合法的CSS颜色值 * @param color */ setStrokeColor(color: string): void; /** * 返回多边型的边线颜色 */ getStrokeColor(): string; /** * 设置多边形的填充颜色,参数为合法的CSS颜色值。当参数为空字符串时,折线覆盖物将没有填充效果 * @param color */ setFillColor(color: string): void; /** * 返回多边形的填充颜色 */ getFillColor(): string; /** * 设置多边形的边线透明度,取值范围0 - 1 * @param opacity */ setStrokeOpacity(opacity: number): void; /** * 返回多边形的边线透明度 */ getStrokeOpacity(): number; /** * 设置多边形的填充透明度,取值范围0 - 1 * @param opacity */ setFillOpacity(opacity: number): void; /** * 返回多边形的填充透明度 */ getFillOpacity(): number; /** * 设置多边形边线的宽度,取值为大于等于1的整数 */ setStrokeWeight(weight: number): void; /** * 返回多边形边线的宽度 */ getStrokeWeight(): number; /** * 设置多边形边线样式为实线或虚线,取值solid或dashed * @param style */ setStrokeStyle(style: string): void; /** * 返回多边形边线样式 */ getStrokeStyle(): string; /** * 返回覆盖物的地理区域范围 */ getBounds(): Bounds; /** * 开启编辑功能 */ enableEditing(): void; /** * 关闭编辑功能 */ disableEditing(): void; /** * 允许覆盖物在map.clearOverlays方法中被清除 */ enableMassClear(): void; /** * 禁止覆盖物在map.clearOverlays方法中被清除 */ disableMassClear(): void; /** * 修改指定位置的坐标。索引index从0开始计数。例如setPositionAt(2, point)代表将折线的第3个点的坐标设为point * @param index * @param point */ setPositionAt(index: number, point: Point): void; /** * 返回覆盖物所在的map对象 */ getMap(): Map; /** * 添加事件监听函数 * @param event * @param handler */ addEventListener(event: string, handler: Callback): void; /** * 移除事件监听函数 * @param event * @param handler */ removeEventListener(event: string, handler: Callback): void; } interface PolygonEvents { /** * 点击多边形后会触发此事件 */ onClick?: (event: { type: string; target: any }) => void; /** * 双击多边形后会触发此事件 */ onDoubleClick?: (event: { type: string; target: any; point: Point; pixel: Pixel }) => void; /** * 鼠标在多边形上按下触发此事件 */ onMouseDown?: (event: { type: string; target: any; point: Point; pixel: Pixel }) => void; /** * 鼠标在多边形释放触发此事件 */ onMouseUp?: (event: { type: string; target: any; point: Point; pixel: Pixel }) => void; /** * 鼠标离开多边形时触发此事件 */ onMouseOut?: (event: { type: string; target: any; point: Point; pixel: Pixel }) => void; /** * 当鼠标进入多边形区域时会触发此事件 */ onMouseOver?: (event: { type: string; target: any; point: Point; pixel: Pixel }) => void; /** * 移除多边形时触发 */ onRemove?: (event: { type: string; target: any }) => void; /** * 覆盖物的属性发生变化时触发 */ onLineUpdate?: (event: { type: string; target: any }) => void; } /** * 此常量表示标注的动画效果。 */ type Animation = number; type ShapeType = number; interface Icon extends Overlay { /** * 图标的定位点相对于图标左上角的偏移值 */ anchor?: ControlAnchor; /** * 图标所用的图片相对于可视区域的偏移值,此功能的作用等同于CSS中的 background-position 属性 */ imageOffset?: Size; /** * 信息窗口开启位置相对于图标左上角的偏移值 */ infoWindowAnchor?: Size; /** * 设置icon打印图片的url,该打印图片只针对IE6有效,解决IE6使用PNG滤镜导致的错位问题。如果您的icon没有使用PNG格式图片或者没有使用CSS Sprites技术,则可忽略此配置 */ printImageUrl?: string; /** * 设置图片资源的地址 */ setImageUrl?: (imageUrl: string) => void; /** * 设置图标可视区域的大小 */ setSize?: (size: Size) => void; /** * 设置图标的大小 */ setImageSize(offset: Size): void; /** * 设置图标定位点相对于其左上角的偏移值 */ setAnchor(anchor: Size): void; /** * 设置图片相对于可视区域的偏移值 */ setImageOffset(offset: Size): void; /** * 设置信息窗口开启位置相对于图标左上角的偏移值 */ setInfoWindowAnchor(anchor: Size): void; /** * 设置icon的打印图片,该打印图片只针对IE6有效,解决IE6使用PNG滤镜导致的错位问题。 * 如果您的icon没有使用PNG格式图片或者没有使用CSS Sprites技术,则可忽略此配置 */ setPrintImageUrl(url: string): void; } /** * 此类表示标注覆盖物所使用的图标。 */ class Icon { /** * 此类表示标注覆盖物所使用的图标。point参数指定了文本标注所在的地理位置 */ constructor(url: string, size: Size, opts?: IconOptions); } /** * 此类表示地图上的文本标注。 */ interface Label extends Overlay { /** * 设置文本标注样式,该样式将作用于文本标注的容器元素上。其中styles为JavaScript对象常量, * 比如: setStyle({ color : "red", fontSize : "12px" }) 注意:如果css的属性名中包含连字符,需要将连字符去掉并将其后的字母进行大写处理,例如:背景色属性要写成:backgroundColor */ setStyle(styles: Object): void; /** * 设置文本标注的内容。支持HTML */ setContent(content: string): void; /** * 设置文本标注坐标。仅当通过Map.addOverlay()方法添加的文本标注有效 */ setPosition(position: Point): void; /** * 获取Label的地理坐标 */ getPosition(): Point; /** * 设置文本标注的偏移值 */ setOffset(offset: Size): void; /** * 返回文本标注的偏移值 */ getOffset(): Size; /** * 设置文本标注的标题,当鼠标移至标注上时显示此标题 */ setTitle(title: string): void; /** * 返回文本标注的标题 */ getTitle(): string; /** * 允许覆盖物在map.clearOverlays方法中被清除 */ enableMassClear(): void; /** * 禁止覆盖物在map.clearOverlays方法中被清除 */ disableMassClear(): void; /** * 设置覆盖物的zIndex */ setZIndex(zIndex: number): void; /** * 返回覆盖物所在的map对象 */ getMap(): MapProps; /** * 添加事件监听函数 */ addEventListener(event: string, handler: Function): void; /** * 移除事件监听函数 */ removeEventListener(event: string, handler: Function): void; } interface LabelOptions { /** * 文本标注的位置偏移值 */ offset?: Size; /** * 文本标注的地理位置 */ position?: Point; /** * 是否在调用map.clearOverlays清除此覆盖物,默认为true */ enableMassClear?: boolean; } interface LabelEvents { /** * 点击文本标注后会触发此事件 */ onClick?: (event: { type: string; target: any }) => void; /** * 双击文本标注后会触发此事件 */ onDblClick?: (event: { type: string; target: any }) => void; /** * 鼠标在文本标注上按下触发此事件 */ onMouseDown?: (event: { type: string; target: any }) => void; /** * 鼠标在文本标注释放触发此事件 */ onMouseUp?: (event: { type: string; target: any }) => void; /** * 鼠标离开文本标注时触发此事件 */ onMouseOout?: (event: { type: string; target: any }) => void; /** * 当鼠标进入文本标注区域时会触发此事件 */ onMouseOver?: (event: { type: string; target: any }) => void; /** * 移除文本标注时触发 */ onRemove?: (event: { type: string; target: any }) => void; /** * 右键点击标注时触发此事件 */ onRightClick?: (event: { type: string; target: any }) => void; } /** * 此类表示地图上的文本标注。 * 创建一个文本标注实例。point参数指定了文本标注所在的地理位置 */ class Label { constructor(content: string, opts?: LabelOptions); } class CanvasLayer { /** * 创建一个CanvasLayer实例,每个实例都是一个单独的canvas标签即单独的一层。可以为同一个地图添加多层的CanvasLayer叠加。 */ constructor(opts?: CanvasLayerOptions); } interface CanvasLayer extends Overlay {} /** * CanvasLayer构造函数的可选参数。 */ interface CanvasLayerOptions { /** * 对应 canvas 的 css z-index 属性,当添加了多个 CanvasLayer 时,可以用于设置层叠顺序 */ zIndex?: number; /** * CanvasLayer位于的覆盖物层级, * 例:paneName: floatPane。JSAPI把地图覆盖物分为了8个层级,顶层为'floatPane', * 低层为'vertexPane'。可以通过Map实例的getPanes()方法,获取到8个层级的名称 */ paneName?: keyof BMap.MapPanes; /** * 具体的绘制逻辑。通过this.canvas获取当前的canvas对象 */ update?(): void; } class Circle { constructor(center: Point, radius: number, opts?: CircleOptions); } interface CircleOptions { /** * 圆形边线颜色 */ strokeColor?: string; /** * 圆形填充颜色。当参数为空时,圆形将没有填充效果 */ fillColor?: string; /** * 圆形边线的宽度,以像素为单位 */ strokeWeight?: number; /** * 圆形边线透明度,取值范围0 - 1 */ strokeOpacity?: number; /** * 圆形填充的透明度,取值范围0 - 1 */ fillOpacity?: number; /** * 圆形边线的样式,solid或dashed */ strokeStyle?: string; /** * 是否在调用map.clearOverlays清除此覆盖物,默认为true */ enableMassClear?: boolean; /** * 是否启用线编辑,默认为false */ enableEditing?: boolean; /** * 是否响应点击事件,默认为true */ enableClicking?: boolean; } interface Circle extends Overlay { /** * 设置圆形的中心点坐标 */ setCenter(center: Point): void; /** * 返回圆形的中心点坐标 */ getCenter(): Point; /** * 设置圆形的半径,单位为米 */ setRadius(radius: number): void; /** * 返回圆形的半径,单位为米 */ getRadius(): number; /** * 返回圆形的地理区域范围 */ getBounds(): Bounds; /** * 设置圆形的边线颜色,参数为合法的CSS颜色值 */ setStrokeColor(color: string): void; /** * 返回圆形的边线颜色 */ getStrokeColor(): string; /** * 设置圆形的填充颜色,参数为合法的CSS颜色值。当参数为空字符串时,圆形覆盖物将没有填充效果 */ setFillColor(color: string): void; /** * 返回圆形的填充颜色 */ getFillColor(): string; /** * 设置圆形的边线透明度,取值范围0 - 1 */ setStrokeOpacity(opacity: number): void; /** * 返回圆形的边线透明度 */ getStrokeOpacity(): number; /** * 设置圆形的填充透明度,取值范围0 - 1 */ setFillOpacity(opacity: number): void; /** * 返回圆形的填充透明度 */ getFillOpacity(): number; /** * 设置圆形边线的宽度,取值为大于等于1的整数 */ setStrokeWeight(weight: number): void; /** * 返回圆形边线的宽度 */ getStrokeWeight(): number; /** * 设置圆形边线样式为实线或虚线,取值solid或dashed */ setStrokeStyle(style: string): void; /** * 返回圆形边线样式 */ getStrokeStyle(): string; /** * 开启编辑功能 */ enableEditing(): void; /** * 关闭编辑功能 */ disableEditing(): void; /** * 允许覆盖物在map.clearOverlays方法中被清除 */ enableMassClear(): void; /** * 禁止覆盖物在map.clearOverlays方法中被清除 */ disableMassClear(): void; /** * 返回覆盖物所在的map对象 */ getMap(): Map; /** * 添加事件监听函数 */ addEventListener(event: string, handler: Function): void; /** * 移除事件监听函数 */ removeEventListener(event: string, handler: Function): void; } interface CircleEvents { /** * 鼠标点击圆形后会触发此事件 */ onClick?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 鼠标双击圆形后会触发此事件 */ onDblClick?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 鼠标在圆形上按下触发此事件 */ onMouseDown?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 鼠标在圆形释放触发此事件 */ onMouseUp?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 鼠标离开圆形时触发此事件 */ onMouseOut?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 当鼠标进入圆形区域时会触发此事件 */ onMouseOver?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 移除圆形时触发此事件 */ onRemove?(event: { type: string; target: any }): void; /** * 圆形覆盖物的属性发生变化时触发此事件 */ onLineUpdate?(event: { type: string; target: any }): void; } type SizeType = number; interface IconOptions { /** * 图标的定位锚点。此点用来决定图标与地理位置的关系,是相对于图标左上角的偏移值,默认等于图标宽度和高度的中间值 */ anchor?: Size; /** * 图片相对于可视区域的偏移值 */ imageOffset?: Size; /** * 信息窗口定位锚点。开启信息窗口时,信息窗口底部尖角相对于图标左上角的位置,默认等于图标的ancho */ infoWindowAnchor?: Size; /** * 用于打印的图片,此属性只适用于IE6,为了解决IE6在包含滤镜的情况下打印样式不正确的问题 */ printImageUrl?: string; } // interface Hotspot extends Overlay { interface Hotspot { /** * 获取热区位置坐标 */ getPosition(): Point; /** * 设置热区位置坐标 */ setPosition(position: Point): void; /** * 获取热区提示文本 */ getText(): string; /** * 设置热区提示文本 */ setText(text: string): void; /** * 获取热区对应的用户数据 */ getUserData(): Mix; /** * 设置热区对应的用户数据 */ setUserData(data: Mix): void; } /** * 此类表示地图上的一个热区。 */ class Hotspot { /** * 创建Hotspot对象实例 * @param position * @param opts */ constructor(position: Point, opts?: HotspotOptions); } interface Symbol extends Overlay { setPath(path: string | SymbolShapeType): void; setAnchor(anchor: Size): void; setRotation(rotation: number): void; setScale(scale: number): void; setStrokeWeight(strokeWeight: number): void; setStrokeColor(color: string): void; setStrokeOpacity(opacity: number): void; setFillOpacity(opacity: number): void; setFillColor(color: string): void; } class Symbol { constructor(path: string | SymbolShapeType, opts?: SymbolOptions); } interface PolylineOptions { /** * 折线颜色 */ strokeColor?: string; /** * 折线的宽度,以像素为单位 */ strokeWeight?: number; /** * 折线的透明度,取值范围0 - 1 */ strokeOpacity?: number; /** * 折线的样式,solid或dashed */ strokeStyle?: string; /** * 是否在调用map.clearOverlays清除此覆盖物,默认为true */ enableMassClear?: boolean; /** * 是否启用线编辑,默认为false */ enableEditing?: boolean; /** * 是否响应点击事件,默认为true */ enableClicking?: boolean; /** * 配置贴合折线的图标 */ icons?: Array<IconSequence>; } interface Polyline extends Overlay { /** * 设置折线的点数组 * @param path */ setPath(path: Point[]): void; /** * 返回折线的点数组 */ getPath(): Point[]; /** * 设置折线的颜色 * @param color */ setStrokeColor(color: string): void; /** * 返回折线的颜色 */ getStrokeColor(): string; /** * 设置透明度,取值范围0 - 1 * @param opacity */ setStrokeOpacity(opacity: number): void; /** * 返回透明度 */ getStrokeOpacity(): number; /** * 设置线的宽度,范围为大于等于1的整数 * @param weight */ setStrokeWeight(weight: number): void; /** * 返回线的宽度 */ getStrokeWeight(): number; /** * 设置是为实线或虚线,solid 或 dashed * @param style */ setStrokeStyle(style: 'solid' | 'dashed'): void; /** * 返回当前线样式状态,实线或者虚线 */ getStrokeStyle(): string; /** * 返回覆盖物的地理区域范围 */ getBounds(): Bounds; /** * 开启编辑功能 */ enableEditing(): void; /** * 关闭编辑功能 */ disableEditing(): void; /** * 允许覆盖物在 map.clearOverlays 方法中被清除 */ enableMassClear(): void; /** * 禁止覆盖物在 map.clearOverlays 方法中被清除 */ disableMassClear(): void; /** * 修改指定位置的坐标。 * 索引index从0开始计数。 * 例如 setPointAt(2, point) 代表将折线的第3个点的坐标设为point * @param index * @param point */ setPositionAt(index: number, point: Point): void; /** * 返回覆盖物所在的map对象 */ getMap(): Map; /** * 添加事件监听函数 * @param event * @param handler */ addEventListener(event: string, handler: Callback): void; /** * 移除事件监听函数 * @param event * @param handler */ removeEventListener(event: string, handler: Callback): void; } interface PolylineEvents { /** * 点击折线后会触发此事件 */ onClick?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 双击折线后会触发此事件 */ onDblClick?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 鼠标在折线上按下触发此事件 */ onMouseDown?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 鼠标在折线释放触发此事件 */ onMouseUp?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 鼠标离开折线时触发此事件 */ onMouseOut?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 当鼠标进入折线区域时会触发此事件 */ onMouseOver?(event: { type: string; target: any; point: Point; pixel: Pixel }): void; /** * 移除折线时触发 */ onRemove?(event: { type: string; target: any }): void; /** * 覆盖物的属性发生变化时触发 */ onLineUpdate?(event: { type: string; target: any }): void; } class Polyline { constructor(points: Point[], opts?: PolylineOptions); } interface GroundOverlay extends Overlay { /** * 设置图层显示的矩形区域 */ setBounds(bounds: Bounds): none; /** * 返回图层显示的矩形区域 */ getBounds(): Bounds; /** * 设置图层的透明度 */ setOpacity(opcity: number): none; /** * 返回图层的透明度 */ getOpacity(): number; /** * 返回图层地址 */ setImageURL(url: string): none; /** * 返回图层地址 */ getImageURL(): string; /** * 设置图层显示的最小级别 */ setDisplayOnMinLevel(level: number): none; /** * 返回图层显示的最小级别 */ getDisplayOnMinLevel(): number; /** * 设置图层显示的最大级别 */ setDispalyOnMaxLevel(level: number): none; /** * 返回图层显示的最大级别 */ getDispalyOnMaxLevel(): number; /** * 添加事件监听函数 * @param event * @param handler */ addEventListener(event: string, handler: Callback): void; /** * 移除事件监听函数 * @param event * @param handler */ removeEventListener(event: string, handler: Callback): void; } interface GroundOverlayEvents { /** * 鼠标点击图层后会触发此事件 */ onClick?(event: { type: string; target: any }): void; /** * 鼠标双击图层后会触发此事件 */ onDblClick?(event: { type: string; target: any }): void; } class GroundOverlay { constructor(bounds: Bounds, opts?: GroundOverlayOptions); } interface GroundOverlayOptions { /** * 图层透明度 */ opacity?: number; /** * 图层地址 */ imageURL?: string; /** * 图层显示的最小级别 */ displayOnMinLevel?: number; /** * 图层显示的最大级别 */ displayOnMaxLevel?: number; } interface HotspotOptions { /** * 当鼠标移至某一热区上时出现的文字提示 */ text: string; /** * 热区响应区域距中心点的扩展偏移值。数组的四个数值分别表示上、右、下、左距离中心点的扩展偏移量。默认偏移量为[5, 5, 5, 5] */ offsets: Array<number>; /** * 由用户填入的自定义数据 */ userData: any; /** * 热区生效的最小级别 */ minZoom: number; /** * 热区生效的最大级别 */ maxZoom: number; } /** * 覆盖物层级 * JSAPI 把地图覆盖物分为了8个层级,顶层为 `floatPane`, * 低层为 `vertexPane`。可以通过Map实例的 `getPanes()` 方法,获取到8个层级的名称 * * API: https://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference_3_0.html#a3b1 */ interface MapPanes { /** * 信息窗口所在的容器 */ floatPane?: HTMLElement; /** * 标注点击区域所在的容器 */ markerMouseTarget?: HTMLElement; /** * 信息窗口阴影所在的容器 */ floatShadow?: HTMLElement; /** * 文本标注所在的容器 */ labelPane?: HTMLElement; /** * 标注图标所在的容器 */ markerPane?: HTMLElement; /** * 标注阴影所在的容器 */ markerShadow?: HTMLElement; /** * 折线、多边形等矢量图形所在的容器 */ mapPane?: HTMLElement; } } declare const BMap_Symbol_SHAPE_CIRCLE: BMap.SymbolShapeType; declare const BMap_Symbol_SHAPE_RECTANGLE: BMap.SymbolShapeType; declare const BMap_Symbol_SHAPE_RHOMBUS: BMap.SymbolShapeType; declare const BMap_Symbol_SHAPE_STAR: BMap.SymbolShapeType; declare const BMap_Symbol_SHAPE_BACKWARD_CLOSED_ARROW: BMap.SymbolShapeType; declare const BMap_Symbol_SHAPE_FORWARD_CLOSED_ARROW: BMap.SymbolShapeType; declare const BMap_Symbol_SHAPE_BACKWARD_OPEN_ARROW: BMap.SymbolShapeType; declare const BMap_Symbol_SHAPE_FORWARD_OPEN_ARROW: BMap.SymbolShapeType; declare const BMap_Symbol_SHAPE_POINT: BMap.SymbolShapeType; declare const BMap_Symbol_SHAPE_PLANE: BMap.SymbolShapeType; declare const BMap_Symbol_SHAPE_CAMERA: BMap.SymbolShapeType; declare const BMap_Symbol_SHAPE_WARNING: BMap.SymbolShapeType; declare const BMap_Symbol_SHAPE_SMILE: BMap.SymbolShapeType; declare const BMap_Symbol_SHAPE_CLOCK: BMap.SymbolShapeType; /** * 坠落动画 */ declare const BMAP_ANIMATION_DROP: BMap.Animation; /** * 跳动动画 */ declare const BMAP_ANIMATION_BOUNCE: BMap.Animation; /** 圆形,为默认形状 */ declare const BMAP_POINT_SHAPE_CIRCLE: BMap.ShapeType; /** 星形 */ declare const BMAP_POINT_SHAPE_STAR: BMap.ShapeType; /** 方形 */ declare const BMAP_POINT_SHAPE_SQUARE: BMap.ShapeType; /** 菱形 */ declare const BMAP_POINT_SHAPE_RHOMBUS: BMap.ShapeType; /** 水滴状,该类型无size和color属性 */ declare const BMAP_POINT_SHAPE_WATERDROP: BMap.ShapeType; /** 定义点的尺寸为超小,宽高为2px*2px */ declare const BMAP_POINT_SIZE_TINY: BMap.SizeType; /** 定义点的尺寸为很小,宽高为4px*4px */ declare const BMAP_POINT_SIZE_SMALLER: BMap.SizeType; /** 定义点的尺寸为小,宽高为8px*8px */ declare const BMAP_POINT_SIZE_SMALL: BMap.SizeType; /** 定义点的尺寸为正常,宽高为10px*10px,为海量点默认尺寸 */ declare const BMAP_POINT_SIZE_NORMAL: BMap.SizeType; /** 定义点的尺寸为大,宽高为16px*16px */ declare const BMAP_POINT_SIZE_BIG: BMap.SizeType; /** 定义点的尺寸为很大,宽高为20px*20px */ declare const BMAP_POINT_SIZE_BIGGER: BMap.SizeType; /** 定义点的尺寸为超大,宽高为30px*30px */ declare const BMAP_POINT_SIZE_HUGE: BMap.SizeType;