更新记录
1.0.0(2023-06-17)
猎鹰轨迹初步集成
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:7.1 - 12.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
注意
使用插件后不能在manifest.json中的app模块配置里再勾选Geolocation,不然打包会失败。高德的apikey可在选择app原生插件配置时,选择好插件后会有填写对应的apikey
安卓权限配置,请在manifest.json中勾选配置
<!--用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--用于获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!--用于访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET" />
<!--用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--用于写入缓存数据到扩展存储卡-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--用于申请调用A-GPS模块-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<!--用于申请获取蓝牙信息进行室内定位-->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
引入插件配置高德apikey
const track = uni.requireNativePlugin("WHY-Track")
定位权限申请和监听回调
onLoad() {
//授权
track.checkPermission()
//监听回调
track.setOnTrackListener(res => {
console.log('监听回调==========', res)
if (res.key == "terminalID") { //保存终端ID
uni.setStorageSync('tid', res.value)
} else if (res.key == "trackID") { //保存轨迹ID
uni.setStorageSync('trid', res.value)
}
})
}
上传轨迹
参数 | 必填 | 说明 |
---|---|---|
sid | 必填 | 服务ID,需要到高德Web服务里面的猎鹰服务去创建,注意:申请Web服务API类型KEY |
tid | tid和tidName必须有一个不为空 | 终端ID-每个用户的唯一识别号,需要自己保存 |
tidName | tid和tidName必须有一个不为空 | 创建终端的唯一标识,创建成功在setOnTrackListener返回tid |
trid | 选填 | 轨迹ID,不传时会自动创建,创建成功在setOnTrackListener返回,需要自己保存 |
uploadLocation() {
track.uploadTrack({
'sid': '',
'tid':'',
'tidName': '',
'trid':'',
}, (res) => {
console.log('初始化回调==========', res)
})
}
查询终端当前位置
track.queryLatestPoint({
'sid': '', //服务ID
'tid': '' //需要查询的终端ID
}, (res) => {
console.log('回调==========', res)
})
查询某个终端特定轨迹的轨迹点
参数 | 必填 | 说明 |
---|---|---|
sid | 必填 | 服务ID |
tid | 必填 | 终端ID |
trid | 必填 | 轨迹ID,传-1表示查询所有轨迹, |
startTime | 选填 | 开始时间,Unix时间戳(轨迹点的定位时间),需要精准到毫秒 |
endTime | 选填 | 结束时间,Unix时间戳(轨迹点的定位时间),需要精准到毫秒,结束时间不能大于当前时间,且距离开始时间不能超过24小时。若轨迹较多,建议将时间段进行拆分。 |
denoise | 选填 | 是否抽稀去噪, 1: 去噪 0: 不去噪 |
mapmatch | 选填 | 是否绑路, 1: 绑路 0: 不绑路 当开启绑路纠偏时,请将抽稀去噪同时开启绑路纠偏效果会更好; |
threshold | 选填 | 是否进行定位精度过滤,过滤掉定位精度较差的轨迹点,0:不过滤。 若只需保留 GPS 定位点,则建议设为20;若需保留GPS和Wi-Fi定位点,去除基站定位点,则建议设为100 |
drivemode | 选填 | 交通方式,该参数决定纠偏策略,目前仅支持驾车模式 0: 驾车 |
recoup | 选填 | 是否进行距离补偿, 1: 代表用驾车策略进行补点计算 0:代表用直线距离进行补点计算 |
gap | 选填 | 距离补偿生效的点间距,单位为米,范围必须在50m~10km,当两点间距离超过该值时,将启用距离补偿计算两点间距离 |
ispoints | 选填 | 是否返回轨迹包含的轨迹点内容,1表示返回,0表示不返回。分页当前仅对查询单条轨迹生效 |
page | 选填 | 需要查询第几页数据。 最大值为100 |
pageSize | 选填 | 每页返回点的个数,当page=1的时候起点、终点的个数不计算在内,pagesize最大值为999 |
track.queryTrackPoints({
'sid': '', //服务ID
'tid': '' //需要查询的终端ID
'trid':'',
'startTime': new Date().getTime()- 1000 * 60 * 60 * 12,
'endTime': new Date().getTime(),
'denoise': 0,
'mapmatch': 0,
'threshold': 0,
'drivemode': 0,
'recoup': 0,
'gap': 5000,
'ispoints': 1,
'page': 1,
'pageSize': 999
}, (res) => {
console.log('回调==========', res)
})
查询终端行驶里程
//初始化轨迹
track.queryDistance({
'sid': '',//服务ID
'tid': '',//终端ID
'startTime': ''//开始时间,
'endTime': ''//结束时间,
'trid': '', //传-1表示包含散点在内的所有轨迹点
}, (res) => {
console.log('回调==========', res)
})