Skip to content

Position

说明

Position 是一个定位插件,用于实现室内定位功能。支持 Beacon 定位、PDR 定位、GPS 定位等多种定位方式,并可以结合多种传感器数据提高定位精度。

构造函数

typescript
new Position(bmap: BMap, options?: Partial<PositionOptions>);

参数

参数类型说明默认值
bmapBMap地图实例-
optionsPartial<PositionOptions>定位配置项-

PositionOptions 配置项

参数类型说明默认值
place_idstring | number场所ID-
access_tokenstring访问令牌-
envstring环境配置,可选值:'test'、'prod''prod'
typenumber定位类型,1:正寻,-1:反寻-1
wss_position_urlstring定位 WebSocket 服务地址-
wss_sensor_urlstring传感器 WebSocket 服务地址-
get_gps_floor_urlstringGPS楼层获取服务地址-
use_sensorboolean是否链接定位服务false
ext_position_paramsRecord<string, any>定位扩展参数{}
ext_sensor_paramsRecord<string, any>传感器扩展参数{}
use_gpsboolean是否使用GPStrue
use_pdrboolean是否使用PDRtrue
upload_positionboolean是否上传定位数据true
use_default_permissionboolean是否使用默认权限true

示例

typescript
import { BMap, Position } from 'bmap';
const bmap = new BMap(document.getElementById('map'));
const position = new Position(bmap, {
  place_id: 'xxx',
})

方法

setSensor

typescript
setSensor(sensor: Sensor): void;

设置传感器实例,position会创建一个默认的sensor实例,在需要更多的传感器时候,设置新的sensor实例。

参数

参数类型说明默认值
sensorSensor传感器实例-

返回值

requestDeviceOrientationPermission

typescript
requestDeviceOrientationPermission(): Promise<{deviceOrientation: boolean} | null>;

请求设备方向传感器权限,在使用pdr定位的时候,苹果手机会需要用户手动授权,在用户点击按钮的方法里,需要调用这个方法,让sensor可以获取到方向角数据。
应该关注 check-sensor 事件,当返回 deviceOrientation: false 时,需要用户授权。

参数

返回值

返回一个 Promise,解析为传感器权限状态对象或 null

pausePdr

typescript
pausePdr(): void;

暂停PDR定位

参数

返回值

continuePdr

typescript
continuePdr(): void;

继续PDR定位

参数

返回值

setPathAngle

typescript
setPathAngle(angle: number): void;

设置路径角度

参数

参数类型说明默认值
anglenumber角度值-

返回值

getForwardAngle

typescript
getForwardAngle(): number | null;

获取前进方向角度

参数

返回值

返回角度值或 null

resetPdr

typescript
resetPdr(): void;

重置PDR定位

参数

返回值

setPath

typescript
setPath(path: PathData2): void;

设置导航路径

参数

参数类型说明默认值
pathPathData2路径数据-

返回值

sendBeacon

typescript
sendBeacon(beaconInfo: BeaconInfo[]): void;

发送Beacon信息,在App中使用,需要通过sendBeacon方法发送beacon信息到服务端进行定位,需要设置options.use_sensor = true

参数

参数类型说明默认值
beaconInfoBeaconInfo[]Beacon信息数组-

返回值

dispose

typescript
dispose(): void;

销毁定位插件实例

bmap销毁的时候,会自动调用dispose方法,不需要手动调用。
如果在bmap销毁之前,需要释放内存,可以调用dispose方法。

参数

返回值

事件

position

typescript
(event: "position", args: { floor: string; x: number; y: number; time: number; speed?: number }): void;

定位结果事件

参数

参数类型说明默认值
floorstring楼层-
xnumberX坐标-
ynumberY坐标-
timenumber时间戳-
speednumber速度(可选)-

check-sensor

typescript
(event: "check-sensor", args: { deviceOrientation: boolean }): void;

传感器检查事件

参数

参数类型说明默认值
deviceOrientationboolean是否可以使用方向角数据-

ws-position

typescript
(event: "ws-position", args: { floor: string; x: number; y: number; time: string }): void;

WebSocket定位结果事件,没有经过pdr平滑的定位数据。

参数

参数类型说明默认值
floorstring楼层-
xnumberX坐标-
ynumberY坐标-
timestring时间-

floor

typescript
(event: "floor", args: { floor: string; time: string }): void;

楼层变化事件

参数

参数类型说明默认值
floorstring楼层-
timestring时间-

compass

typescript
(event: "compass", args: { value: number }): void;

罗盘角度事件

参数

参数类型说明默认值
valuenumber角度值-