Skip to content

BMap

说明

BMap 是一个地图入口类,用于创建地图。

构造函数

typescript
new BMap(container: HTMLElement, config?: Partial<Config>);

参数

参数类型说明默认值
containerHTMLElement地图容器-
configPartial<Config>地图配置{}

返回值

BMap 地图实例

属性

config

地图配置

context

地图上下文

basicZoom

  • 类型number
  • 默认值:1

地图撑满屏幕时的相机的zoom

方法

changeMapType

typescript
changeMapType(type: "2d" | "3d", duration?: number): void;

切换地图2d|3d模式

参数

参数类型说明默认值
type"2d" | "3d"地图类型-
durationnumber切换动画时长 ms500

返回值

使用示例

typescript
bmap.changeMapType("3d", 100);

reduceMap

typescript
reduceMap(zoom?: number, duration?: number): Promise<unknown>;

缩小地图

参数

参数类型说明默认值
zoomnumber缩小的相机的zoom0.5
durationnumber切换动画时长 ms500

返回值

返回 Promise,在动画结束后,改变 promise 状态

使用示例

typescript
bmap.reduceMap(1, 100);

enlargeMap

typescript
enlargeMap(zoom?: number, duration?: number): Promise<unknown>;

放大地图

参数

参数类型说明默认值
zoomnumber放大的相机的zoom0.5
durationnumber切换动画时长 ms500

返回值

返回 Promise,在动画结束后,改变 promise 状态

使用示例

typescript
bmap.enlargeMap(1, 100);

rotateMap

typescript
rotateMap(radius?: number, duration?: number): Promise<unknown>;

旋转地图

参数

参数类型说明默认值
radiusnumber地图旋转的弧度0.1
durationnumber切换动画时长 ms500

返回值

返回 Promise,在动画结束后,改变 promise 状态

使用示例

typescript
bmap.rotateMap(Math.PI / 2, 100);

translateElementToCenter

typescript
translateElementToCenter(ele: Object3D, duration?: number): Promise<unknown>;

将元素平移到地图中心

参数

参数类型说明默认值
elementObject3D居中的物体,Graphic 或 Poi-
durationnumber切换动画时长 ms500

返回值

返回 Promise,在动画结束后,改变 promise 状态

使用示例

typescript
bmap.translateElementToCenter(graphic);

getGraphicByNodeId

typescript
getGraphicByNodeId(nodeId: string): Graphic | null;

根据节点id获取Graphic

参数

参数类型说明默认值
nodeIdstring节点id-

返回值

查询成功,返回对应的Graphic,查询失败,返回 null

使用示例

typescript
bmap.getGraphicByNodeId("712be555");

getPoiById

typescript
getPoiById(id: string): Poi | null;

根据poi id获取Poi

参数

参数类型说明默认值
idstringpoi id-

返回值

查询成功,返回对应的Poi,查询失败,返回 null

使用示例

typescript
bmap.getPoiById("712be555");

getPois

typescript
getPois(): Poi[];

获取所有Poi

参数

返回值

返回所有Poi

使用示例

typescript
bmap.getPois();

getFloorAllGraphics

typescript
getFloorAllGraphics(): Graphic[];

获取当前楼层全部的graphic

参数

返回值

返回当前楼层全部的Graphic数组

使用示例

typescript
bmap.getFloorAllGraphics();

dispose

typescript
dispose(): void;

销毁地图

参数

返回值

使用示例

typescript
bmap.dispose();

addEventListener

typescript
addEventListener(eventName: string, callback: () => void): void;

添加事件监听

参数

参数类型说明默认值
eventNamestring事件名称-
callback() => void事件回调-

返回值

使用示例

typescript
bmap.addEventListener("zoom-change", () => {
  console.log("zoom-change");
});

removeEventListener

typescript
removeEventListener(eventName: string, callback: () => void): void;

移除事件监听

参数

参数类型说明默认值
eventNamestring事件名称-
callback() => void事件回调-

返回值

使用示例

typescript
bmap.removeEventListener("zoom-change", () => {
  console.log("zoom-change");
});

fitCameraByPois

typescript
fitCameraByPois(pois: Poi2[], padding?: [number, number, number, number], duration?: number): Promise<void>;

改变相机的位置,使得地图放大/缩小到包含指定的POI点的视图

参数

参数类型说明默认值
poisPoi2[]需要显示的POI点数组-
padding[number, number, number, number]视图边距 [上, 右, 下, 左][20, 20, 20, 20]
durationnumber动画时长 ms500

返回值

返回 Promise,在动画结束后,改变 promise 状态

使用示例

typescript
const pois = bmap.getPois();
bmap.fitCameraByPois(pois, [30, 30, 30, 30], 1000);

fitCameraByPoiNodeIds

typescript
fitCameraByPoiNodeIds(ids: string[], padding?: [number, number, number, number], duration?: number): Promise<void>;

改变相机的位置,使得地图放大/缩小到包含指定的POI点的视图

参数

参数类型说明默认值
idsstring[]POI点的ID数组-
padding[number, number, number, number]视图边距 [上, 右, 下, 左][20, 20, 20, 20]
durationnumber动画时长 ms500

返回值

返回 Promise,在动画结束后,改变 promise 状态

使用示例

typescript
const poiIds = [ "NKMDRpLOXC", "Sz6Fixeznh", "9KucA85wij" ];
bmap.fitCameraByPoiNodeIds(poiIds, [30, 30, 30, 30], 1000);

createPoi2ByPosition

typescript
createPoi2ByPosition(position: { x: number; y: number; z: number }, options: PoiOptionsParam2): Poi2 | null;

根据位置创建Poi2

参数

参数类型说明默认值
position{ x: number; y: number; z: number }位置坐标-
optionsPoiOptionsParam2Poi2配置项-

返回值

创建成功返回Poi2实例,失败返回null

使用示例

typescript
const poi = bmap.createPoi2ByPosition({ x: 100, y: 100, z: 0 }, {
  icon: "xxx",
  icon_size: [70, 70],
  collision_enable: false
  // ...
});

事件

zoom-change

typescript
(event: "zoom-change", args: { basicZoom: number, cameraZoom: number }): void;

地图缩放事件

参数

参数类型说明默认值
basicZoomnumber地图铺满屏幕的相机zoom-
cameraZoomnumber当前相机的zoom-

返回值

使用示例

typescript
bmap.addEventListener("zoom-change", ({ basicZoom, cameraZoom }) => { 
  const zoomScale = cameraZoom / basicZoom
  console.log(zoomScale, basicZoom, cameraZoom)
})