@uiw/react-baidu-map-types
Version:
Baidu Map Components for React.
528 lines (526 loc) • 18 kB
TypeScript
/// <reference path="./base.d.ts" />
/// <reference path="./maptype.d.ts" />
/// <reference path="./panorama.d.ts" />
declare namespace BMap {
class Map {
constructor(container: string | HTMLElement, opts?: MapOptions);
/**
* 启用地图拖拽,默认启用
*/
enableDragging(): void;
/**
* 禁用地图拖拽
*/
disableDragging(): void;
/**
* 启用滚轮放大缩小,默认禁用
*/
enableScrollWheelZoom(): void;
/**
* 禁用滚轮放大缩小
*/
disableScrollWheelZoom(): void;
/**
* 启用双击放大,默认启用
*/
enableDoubleClickZoom(): void;
/**
* 禁用双击放大
*/
disableDoubleClickZoom(): void;
/**
* 启用键盘操作,默认禁用。键盘的上、下、左、右键可连续移动地图。
* 同时按下其中两个键可使地图进行对角移动。
* PgUp、PgDn、Home和End键会使地图平移其1/2的大小。+、-键会使地图放大或缩小一级
*/
enableKeyboard(): void;
/**
* 禁用键盘操作
*/
disableKeyboard(): void;
/**
* 启用地图惯性拖拽,默认禁用
*/
enableInertialDragging(): void;
/**
* 禁用地图惯性拖拽
*/
disableInertialDragging(): void;
/**
* 启用连续缩放效果,默认禁用
*/
enableContinuousZoom(): void;
/**
* 禁用连续缩放效果
*/
disableContinuousZoom(): void;
/**
* 启用双指操作缩放,默认启用
*/
enablePinchToZoom(): void;
/**
* 禁用双指操作缩放
*/
disablePinchToZoom(): void;
/**
* 启用自动适应容器尺寸变化,默认启用
*/
enableAutoResize(): void;
/**
* 禁用自动适应容器尺寸变化
*/
disableAutoResize(): void;
/**
* 设置地图默认的鼠标指针样式。参数cursor应符合CSS的cursor属性规范
*/
setDefaultCursor(cursor: string): void;
/**
* 返回地图默认的鼠标指针样式
*/
getDefaultCursor(): string;
/**
* 设置拖拽地图时的鼠标指针样式。参数cursor应符合CSS的cursor属性规范
*/
setDraggingCursor(cursor: string): string;
/**
* 返回拖拽地图时的鼠标指针样式
*/
getDraggingCursor(): void;
/**
* 设置地图允许的最小级别。取值不得小于地图类型所允许的最小级别
*/
setMinZoom(zoom: Number): void;
/**
* 设置地图允许的最大级别。取值不得大于地图类型所允许的最大级别
*/
setMaxZoom(zoom: Number): void;
/**
* 设置地图样式,样式包括地图底图颜色和地图要素是否展示两部分
*/
setMapStyle(style: MapStyle): void;
/**
* 设置地图个性化样式V2版本,仅支持现代浏览器(支持Canvas)
*/
setMapStyleV2(style: MapStyleV2): void;
/**
* 将全景实例与Map类进行绑定
*/
setPanorama(pano: Panorama): void;
/**
* 返回地图可视区域,以地理坐标表示
*/
getBounds(): Bounds;
/**
* 返回地图当前中心点
*/
getCenter(): Point;
/**
* 返回两点之间的距离,单位是米
*/
getDistance(start: Point, end: Point): Number;
/**
* 返回地图类型
*/
getMapType(): MapType;
/**
* 返回地图视图的大小,以像素表示
*/
getSize(): Size;
/**
* 根据提供的地理区域或坐标获得最佳的地图视野,返回的对象中包含center和zoom属性,分别表示地图的中心点和级别。
* 此方法仅返回视野信息,不会将新的中心点和级别做用到当前地图上
*/
getViewport(view: Array<Point>, viewportOptions: ViewportOptions): Viewport;
/**
* 返回地图当前缩放级别
*/
getZoom(): number;
/**
* 获取与Map类绑定的全景实例
*/
getPanorama(): Panorama;
/**
* 设初始化地图。 如果center类型为Point时,zoom必须赋值,范围3-19级,
* 若调用高清底图(针对移动端开发)时,zoom可赋值范围为3-18级。
* 如果center类型为字符串时,比如“北京”,zoom可以忽略,地图将自动根据 center 适配最佳 zoom 级别
*
* @param zoom 如果center类型为Point时,zoom必须赋值,范围3-19级
* @param center
*/
centerAndZoom(center: string | Point, zoom: number): void;
/**
* 将地图的中心点更改为给定的点。如果该点在当前的地图视图中已经可见,则会以平滑动画的方式移动到中心点位置。
* 可以通过配置强制移动过程不使用动画效果
*/
panTo(center: Point, opts: PanOptions): void;
/**
* 将地图在水平位置上移动x像素,垂直位置上移动y像素。如果指定的像素大于可视区域范围或者在配置中指定没有动画效果,则不执行滑动效果
*/
panBy(x: number, y: number, opts: PanOptions): void;
/**
* 重新设置地图,恢复地图初始化时的中心点和级别
*/
reset(): void;
/**
* 设置地图中心点。center除了可以为坐标点以外,还支持城市名
*/
setCenter(center: Point | string): void;
/**
* 设置地图城市,注意当地图初始化时的类型设置为 `BMAP_NORMAL_MAP` 时,
* 需要在调用 `centerAndZoom` 之前调用此方法设置地图所在城市。
* 例如:
* @example
*
* ```js
* var map = new BMap.Map(“container”, { mapType: BMAP_NORMAL_MAP });
* map.setCurrentCity(“北京市”);
* map.centerAndZoom(new BMap.Point(116.404, 39.915), 18);
* ```
*
* 注意:初始化的坐标应与您设置的城市对应,否则地图将无法正常显示。
*/
setCurrentCity(city: string): void;
/**
* 设置地图类型
*/
setMapType(mapType: MapType[]): void;
/**
* 根据提供的地理区域或坐标设置地图视野,调整后的视野会保证包含提供的地理区域或坐标
*/
setViewport(view: Array<Point> | Viewport, viewportOptions: ViewportOptions): void;
/**
* 将视图切换到指定的缩放等级,中心点坐标不变。注意:当有信息窗口在地图上打开时,地图缩放将保证信息窗口所在的坐标位置不动
*/
setZoom(zoom: Number): void;
/**
* 是否使用高分辨率底图。仅当 mapOptions.enableHighResolution 属性为 true 且设备支持高分辨率时返回 true
*/
highResolutionEnabled(): boolean;
/**
* 放大一级视图
*/
zoomIn(): void;
/**
* 缩小一级视图
*/
zoomOut(): void;
/**
* 为地图添加热区
*/
addHotspot(hotspot: Hotspot): void;
/**
* 移除某个地图热区
*/
removeHotspot(hotspot: Hotspot): void;
/**
* 清空地图所有热区
*/
clearHotspots(): void;
/**
* 将控件添加到地图,一个控件实例只能向地图中添加一次
*/
addControl(control: Control): void;
/**
* 从地图中移除控件。如果控件从未被添加到地图中,则该移除不起任何作用
*/
removeControl(control: Control): void;
/**
* 返回地图的容器元素。当创建用户自定义控件时,需要自行实现Control.initialize()方法,并将控件的容器元素添加到地图上,通过此方法可获得地图容器
*/
getContainer(): HTMLElement;
/**
* 添加右键菜单
*/
addContextMenu(menu: ContextMenu): void;
/**
* 移除右键菜单
*/
removeContextMenu(menu: ContextMenu): void;
/**
* 将覆盖物添加到地图中,一个覆盖物实例只能向地图中添加一次
*/
addOverlay(overlay: Overlay): void;
/**
* 从地图中移除覆盖物。如果覆盖物从未被添加到地图中,则该移除不起任何作用
*/
removeOverlay(overlay: Overlay): void;
/**
* 清除地图上所有覆盖物
*/
clearOverlays(): void;
/**
* 在地图上打开信息窗口
*/
openInfoWindow(infoWnd?: InfoWindow, point?: Point): void;
/**
* 关闭在地图上打开的信息窗口。在标注上打开的信息窗口也可通过此方法进行关闭
*/
closeInfoWindow(): void;
/**
* 根据地理坐标获取对应的覆盖物容器的坐标,此方法用于自定义覆盖物
*/
pointToOverlayPixel(point: Point): Pixel;
/**
* 根据覆盖物容器的坐标获取对应的地理坐标
*/
overlayPixelToPoint(pixel: Pixel): Point;
/**
* 返回地图上处于打开状态的信息窗的实例。当地图没有打开的信息窗口时,此方法返回null
*/
getInfoWindow(): InfoWindow | Null;
/**
* 返回地图上的所有覆盖物
*/
getOverlays(): Array<Overlay>;
/**
* 返回地图覆盖物容器列表
*/
getPanes(): MapPanes;
/**
* 添加一个自定义地图图层
*/
addTileLayer(tileLayer: TileLayer): void;
/**
* 移除一个自定义地图图层
*/
removeTileLayer(tileLayer: TileLayer): void;
/**
* 通过地图类型得到一个地图图层对象
*/
getTileLayer(mapType: String): TileLayer;
/**
* 像素坐标转换为经纬度坐标
*/
pixelToPoint(pixel: Pixel): Point;
/**
* 经纬度坐标转换为像素坐标
*/
pointToPixel(point: Point): Pixel;
addEventListener(event: string, handler: Callback): void;
removeEventListener(event: string, handler: Callback): void;
}
interface MapEvents {
/**
* 左键单击地图时触发此事件。 当双击时,产生的事件序列为: click click dblclick
*/
onClick?(event: { type: string; target: any; point: Point; pixel: Pixel; overlay: Overlay }): void;
/**
* 鼠标双击地图时会触发此事件
*/
onDblClick?(event: { type: string; target: any; pixel: Pixel; point: Point }): void;
/**
* 右键单击地图时触发此事件。 当双击时,产生的事件序列为: rightclick rightclick rightdblclick
*/
onRightClick?(event: { type: string; target: any; point: Point; pixel: Pixel; overlay: Overlay }): void;
/**
* 右键双击地图时触发此事件
*/
onRightdblClick?(event: { type: string; target: any; point: Point; pixel: Pixel; overlay: Overlay }): void;
/**
* 地图类型发生变化时触发此事件
*/
onMapTypeChange?(event: { type: string; target: any }): void;
/**
* 鼠标在地图区域移动过程中触发此事件
*/
onMouseMove?(event: { type: string; target: any; point: Point; pixel: Pixel; overlay: Overlay }): void;
/**
* 鼠标移入地图区域时触发此事件
*/
onMouseOver?(event: { type: string; target: any }): void;
/**
* 鼠标移出地图区域时触发此事件
*/
onMouseOut?(event: { type: string; target: any }): void;
/**
* 地图移动开始时触发此事件
*/
onMoveStart?(event: { type: string; target: any }): void;
/**
* 地图移动过程中触发此事件
*/
onMoving?(event: { type: string; target: any }): void;
/**
* 地图移动结束时触发此事件
*/
onMoveEnd?(event: { type: string; target: any }): void;
/**
* 地图更改缩放级别开始时触发触发此事件
*/
onZoomStart?(event: { type: string; target: any }): void;
/**
* 地图更改缩放级别结束时触发触发此事件
*/
onZoomEnd?(event: { type: string; target: any }): void;
/**
* 当使用 Map.addOverlay() 方法向地图中添加单个覆盖物时会触发此事件
*/
onAddOverlay?(event: { type: string; target: any }): void;
/**
* 当使用 Map.addControl() 方法向地图中添加单个控件时会触发此事件
*/
onAddControl?(event: { type: string; target: any }): void;
/**
* 当使用 Map.removeControl() 方法移除单个控件时会触发此事件
*/
onRemoveControl?(event: { type: string; target: any }): void;
/**
* 当使用 Map.removeOverlay() 方法移除单个覆盖物时会触发此事件
*/
onRemoveOverlay?(event: { type: string; target: any }): void;
/**
* 当使用 Map.clearOverlays() 方法一次性移除全部覆盖物时会触发此事件
*/
onClearOverlays?(event: { type: string; target: any }): void;
/**
* 开始拖拽地图时触发
*/
onDragStart?(event: { type: string; target: any; pixel: Pixel; point: Point }): void;
/**
* 拖拽地图过程中触发
*/
onDragging?(event: { type: string; target: any; pixel: Pixel; point: Point }): void;
/**
* 停止拖拽地图时触发
*/
onDragEnd?(event: { type: string; target: any; pixel: Pixel; point: Point }): void;
/**
* 添加一个自定义地图图层时触发此事件
*/
onAddTileLayer?(event: { type: string; target: any }): void;
/**
* 移除一个自定义地图图层时触发此事件
*/
onRemoveTileLayer?(event: { type: string; target: any }): void;
/**
* 调用Map.centerAndZoom()方法时会触发此事件。这表示位置、缩放层级已经确定,但可能还在载入地图图块
*/
onLoad?(event: { type: string; target: any; pixel: Pixel; point: Point; zoom: number }): void;
/**
* 地图可视区域大小发生变化时会触发此事件
*/
onReSize?(event: { type: string; target: any; size: Size }): void;
/**
* 点击热区时触发此事件
*/
onHotspotClick?(event: { type: string; target: any; spots: HotspotOptions }): void;
/**
* 鼠标移至热区时触发此事件
*/
onHotspotOver?(event: { type: string; target: any; spots: HotspotOptions }): void;
/**
* 鼠标移出热区时触发此事件
*/
onHotspotOut?(event: { type: string; target: any; spots: HotspotOptions }): void;
/**
* 当地图所有图块完成加载时触发此事件
*/
onTilesLoaded?(event: { type: string; target: any }): void;
/**
* 触摸开始时触发此事件,仅适用移动设备
*/
onTouchStart?(event: { type: string; target: any; point: Point; pixel }): void;
/**
* 触摸移动时触发此事件,仅适用移动设备
*/
onTouchMove?(event: { type: string; target: any; point: Point; pixel }): void;
/**
* 触摸结束时触发此事件,仅适用移动设备
*/
onTouchEnd?(event: { type: string; target: any; point: Point; pixel }): void;
/**
* 长按事件,仅适用移动设备
*/
onLongPress?(event: { type: string; target: any; point: Point; pixel }): void;
}
/**
* 此类是 `panBy` 和 `panTo` 方法的可选参数,没有构造函数,通过对象字面量形式表示。
*/
interface PanOptions {
/**
* 是否在平移过程中禁止动画
*/
noAnimation?: boolean;
}
interface MapOptions {
/**
* 地图允许展示的最小级别
*/
minZoom?: number;
/**
* 地图允许展示的最大级别
*/
maxZoom?: number;
/**
* 地图类型
* @default BMAP_NORMAL_MAP
*/
mapType?: MapType;
/**
* 是否启用使用高分辨率地图。在iPhone4及其后续设备上,可以通过开启此选项获取更高分辨率的底图,v1.2,v1.3版本默认不开启,v1.4 默认为开启状态
*/
enableHighResolution?: boolean;
/**
* 地图允许展示的最大级别
*/
enableAutoResize?: boolean;
/**
* 是否开启底图可点功能
*/
enableMapClick?: boolean;
}
/**
* 此类代表视野,不可实例化,通过对象字面量形式表示。
*/
interface Viewport {
/**
* 视野中心点
*/
center: Point;
/**
* 视野级别
*/
zoom: number;
}
/**
* 此类作为map.getViewport与map.setViewport方法的可选参数,不可实例化。
*/
interface ViewportOptions {
/**
* 是否启用动画效果移动地图,默认为true。当调整后的级别与当前地图级别一致时,将使用动画效果移动地图
*/
enableAnimation?: boolean;
/**
* 视野调整的预留边距,例如: margins: [30, 20, 0, 20] 表示坐标点会限制在上述区域内
*/
margins?: number[];
/**
* 地图级别的偏移量,您可以在方法得出的结果上增加一个偏移值。例如map.setViewport计算出地图的级别为10,如果zoomFactor为-1,则最终的地图级别为9
*/
zoomFactor?: number;
/**
* 改变地图视野的延迟执行时间,单位毫秒,默认为200ms。此延时仅针对动画效果有效
*/
delay?: number;
}
type APIVersion = number;
/**
* 该类用于设置地图样式,使用对象字面量形式表示,不可实例化。
*/
interface MapStyle {
/**
* 设置地图上展示的元素种类,支持point(兴趣点)、road(道路)、water(河流)、land(陆地)、building(建筑物)
*/
features: any[];
/**
* 设置地图底图样式,目前支持normal(默认样式),dark(深色样式),light(浅色样式)三种
*/
style: 'normal' | 'dark' | 'light';
}
/**
* 该类用于设置地图样式的个性化地图服务V2,使用对象字面量形式表示,不可实例化。
* 样式Json,通过[`编辑器生成`](http://lbsyun.baidu.com/apiconsole/custommap)
*/
type MapStyleV2 = { styleJson: MapStyleItem[] } | { styleId: string };
}
declare const BMAP_API_VERSION: BMap.APIVersion;