更新时间:2024-03-05 GMT+08:00
分享

视觉定位

接口列表

视觉定位需要使用的接口如表1所示。

表1 视觉定位接口列表

接口

描述

参数名

参数类型

参数说明

返回值

getToken

向服务器请求签名。

-

-

-

Promise<any>

setAKSK

验证租户身份信息。

requestParams

{

AK: string;

SK: string;

}

访问密钥ID(AK)和秘密访问密钥(SK)。

boolean

如果AK/SK有一个是空值就会返回false。

setAreaGPS

设置已知地图服务区域的GPS坐标到AR系统中,便于提高后续视觉定位的精度。GPS信息可以从局点配置中获取,也可以通过请求浏览器的位置接口获取。

gps

{

latitude: number;

longitude: number;

altitude: number;

}

GPS坐标的经纬度及海拔高度。

void

searchArea

根据GPS判断地图服务区域。

areaData

{

location: {

lon: number;

lat: number;

};

radius: number;

}

GPS经纬度坐标和查询半径(单位:米)。

Promise<any>

返回查询范围内的局点信息。

getAreaConfig

获取区域配置信息。

address

string

局点名称。

Promise<any>

convertUTMtoGPS

UTM转GPS。

utm

number[]

utm坐标,[x, y, z]。

number[]

isSouthHemi

boolean

是否在南半球。

zone

number

utmCode的数值部分。定位成功会返回utmCode。

convertGPStoUTM

GPS坐标转UTM XYZ。

gps

{

longitude: number;

latitude: number;

altitude?: number;

}

GPS坐标。

{

utmX: number;

utmY: number;

utmZ: number;

utmCode: string;

}

registerGetNewVpsPose

设置定位成功回调函数。

funGetNewPose

Function

回调函数。

需要接收两个参数:

VPS请求接口的返回数据和世界坐标原点。

  • dictPoseData: { utmcode: string; vpsFloor: string; pose: { r: number[], t: number[]} }
    • dictPoseData.pose.r是VPS姿态矩阵
    • dictPoseData.pose.t是当前的位置的UTM坐标
  • vpsOffset: Vector3

void

requestVps

触发手动定位请求。定位结果会通过回调函数返回。

-

-

-

void

接口调用示例

// 向服务器请求签名
hwar.getToken().then((res) => { 
    // 进行后续操作(无需获取具体签名值)
}).catch((err) => {
    // 获取失败
});

// 验证租户身份信息
// 认证用的AK、SK硬编码到代码中或明文存储都有很大的安全风险,建议在代码中配置加密后的AK/SK,解密后传入hwar.setAKSK方法中。
let result:boolean = hwar.setAKSK({
    AK: "解密后的变量",
    SK: "解密后的变量"
});

// 设置已知地图服务区域的GPS坐标
hwar.setAreaGPS({
    latitude:xxx,
    longitude:xxx,
    altitude:xxx
});

// 根据GPS判断地图服务区域
hwar.searchArea({
    "location": { "lon": xxx, "lat": xxx },
    "radius": 50
}).then((res) => {
    // 查询范围内的局点信息
});

// 获取区域配置信息
hwar.getAreaConfig("xxx").then((data) => { });

// UTM 转 GPS
let gps = hwar.convertUTMtoGPS([xxx, xxx, xxx], false, xxx);

// GPS 坐标 转 UTM XYZ
let utm = hwar.convertGPStoUTM({
    latitude: xxx,
    longitude: xxx,
    altitude: xxx
});

// 设置定位成功回调函数
hwar.registerGetNewVpsPose((dictPoseData: any, vpsOffset: Vector3) => { });

// 触发手动定位请求
hwar.requestVps();

相关文档