视觉定位
接口列表
视觉定位需要使用的接口如表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请求接口的返回数据和世界坐标原点。
|
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();