注意:应工信部要求,自本插件1.1.0版本起首次调用本插件前必须先弹出隐私协议,详情参考SDK合规使用方案。之后需先调用 updateLocationPrivacy,否则定位接口都无效。
amapTrack 该插件封装了高德地图的猎鹰轨迹管理服务,支持实时轨迹追踪、历史轨迹查询等服务。
使用插件前,请先注册高德开放平台账号。
config.xml
文件:针对 iOS 平台配置方法:
<preference name="backgroundMode" value="location"/>
<feature name="amapTrack">
<param name="key" value="b2023349a4804b7d49f41597a6f62a4a"/>
</feature>
Android 配置方法
<meta-data
name="com.amap.api.v2.apikey"
value="xxxxxxxxxxxxxx" />
字段描述:
com.amap.api.v2.apikey:(必须配置)高德开放平台 获取应用key
从1.0.1版本起,iOS 端 SDK 更新为高德最新版本SDK,最新版本的SDK包含 IDFA 相关功能。所以 iOS 端提交 AppStore 时必须认真阅读 提交AppStore必读,以及如何解决因获取 IDFA 被 AppStore 拒绝的问题?
设置定位类隐私权限
updateLocationPrivacy({params})
privacyAgree:
privacyShow:
containStatus:
var aMap = api.require('aMapLBS');
aMap.updateLocationPrivacy({
privacyAgree:'didAgree',
privacyShow:'didShow',
containStatus:'didContain'
});
iOS系统,Android系统
可提供的1.1.0及更高版本
初始化
initAmapTrack({params})
serviceID:
gatherTimeInterval:
packTimeInterval:
maxSize:
locationMode:
accuracy:
filter:
var name = api.require('amapTrack');
name.initAmapTrack({
serviceID:'',
gatherTimeInterval:2,
packTimeInterval:20,
maxSize:50
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
开启猎鹰服务
startGather({params}, callback(ret))
serviceID:
terminalId:
trackId:
var name = api.require('amapTrack');
name.startGather({
trackId:,
serviceID:,
terminalId:,
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
停止猎鹰服务
stopGather()
serviceID:
terminalId:
var amapTrack = api.require('amapTrack');
amapTrack.stopGather({
serviceID:,
terminalId,
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
开启收集上报
startUpload()
var amapTrack = api.require('amapTrack');
amapTrack.startUpload();
iOS 系统,Android 系统 可提供的 1.0.0 及更高版本
停止收集上报
stopUpload()
var amapTrack = api.require('amapTrack');
amapTrack.stopUpload();
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置开启服务、轨迹上传等监听
setTrackLifecycleListener(callback(ret))
ret:
{
status: //布尔类型;true成功,false失败
type:, //字符串类型:返回事件类型
‘BindServiceCallback’:绑定服务回调,仅支持Android端
‘StartGatherCallback’:定位采集开启回调
‘StartTrackCallback’:服务启动回调
‘StopGatherCallback’:定位采集关闭回调
‘StopTrackCallback’:服务关闭回调
}
err:
{
msg: //字符串类型;错误信息,仅支持Android
errorCode: //数字类型;仅支持iOS,详情见附件错误码列表
}
var amapTrack = api.require('amapTrack');
amapTrack.setTrackLifecycleListener(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
增加Terminal
addTerminal({params}, callback(ret))
serviceID:
terminalName:
ret:
{
status: //布尔类型;true成功,false失败
terminalId:, //数字类型;终端id
}
err:
{
msg: //字符串类型;错误信息
}
var amapTrack = api.require('amapTrack');
amapTrack.addTerminal({
terminalName:'',
serviceID:,
}, function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
添加轨迹
addTrack({params}, callback(ret))
serviceID:
terminalId:
ret:
{
status: //布尔类型;true成功,false失败
trackId:, //数字类型;轨迹id
}
err:
{
msg: //字符串类型;错误信息
}
var amapTrack = api.require('amapTrack');
amapTrack.addTrack({
terminalId:,
serviceID:,
}, function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
查询终端,添加之后才会存在
queryTerminal({params}, callback(ret))
serviceID:
terminalName:
terminalId:
ret:
{
status: //布尔类型;true成功,false失败
terminalId:, //数字类型;终端id,仅支持Android端
terminals:[{ //数组类型;,仅支持iOS端
terminalId:, //字符串类型;
terminalName:,//字符串类型;
desc:, //字符串类型;description信息
createTime:, //数字类型;创建时间,单位毫秒
locateTime //数字类型;最后定位时间,单位毫秒
}]
}
err:
{
msg: //字符串类型;错误信息
}
var amapTrack = api.require('amapTrack');
amapTrack.queryTerminal({
terminalName:'',
serviceID:,
}, function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
获取终端实时位置(最新位置)
getNewLocation(callback(ret))
serviceID:
terminalId:
ret:
{
status: , //布尔类型;true成功,false失败
data: //JSON对象
}
var amapTrack = api.require('amapTrack');
amapTrack.getNewLocation(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
获取终端行驶里程
getMileage({params}, callback(ret))
serviceID:
terminalId:
trackId
hours:
ret:
{
status: , //布尔类型;true成功,false失败
data: //JSON对象
}
var amapTrack = api.require('amapTrack');
amapTrack.getMileage({
serviceID:,
terminalId:,
trackId:,
hours:1,
}, function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
获取终端的历史轨迹
getHistoryTrajectory({params}, callback(ret))
serviceID:
terminalId:
hours:
isTrack:
trackID:
denoise:
threshold:
mapmatch:
ispoints:
recoup:
gap:
page:
pageSize:
ret:
{
status: , //布尔类型;true成功,false失败
data: //JSON对象
}
var amapTrack = api.require('amapTrack');
amapTrack.getHistoryTrajectory({
serviceID:,
terminalId:,
hours:1,
isTrack:false,
trackID:''
}, function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
查询终端所有轨迹点
queryHistoryTrack({params}, callback(ret))
serviceID:
terminalId:
hours:
orde:
mapmatch:
recoup:
gap:
page:
pageSize:
ret:
{
status: , //布尔类型;true成功,false失败
data: //JSON对象
}
var amapTrack = api.require('amapTrack');
amapTrack.queryHistoryTrack({
serviceID:,
terminalId,
hours:1,
}, function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
errorCode: //数字类型; 100,///< 未知错误 101,///< option包含错误参数 102,///< service已经启动 103,///< service已经停止 104,///< gather已经开始 105,///< gather已经停止 106,///< 没有定位权限 107,///< 获取定位失败
1800,///< 服务返回数据为空
1801,///< 协议解析错误,通常是返回结果无法解析
1802,///< 连接超时
1803,///< URL异常
1804,///< 找不到主机
1805,///< 服务器连接失败
1806,///< 连接异常,通常为没有网络的情况
1807,///< 连接取消
2031,///< 自定义参数获取异常
10000,///< 没有错误
10001,///< key非法或过期
10002,///< 没有权限使用相应的接口
10003,///< 访问已超出日访问量
10004,///< 用户访问过于频繁
10005,///< 用户IP无效
10006,///< 用户域名无效
10007,///< 无效签名
10008,///< 安全码验证错误,bundleID与key不对应
10009,///< 请求key与绑定平台不符
10010,///< IP请求超限
10011,///< 不支持HTTPS请求
10012,///< 权限不足,服务请求被拒绝
10013,///< 开发者key被删除,无法正常使用
10014,///< QPS超出限制
10015,///< 单机QPS限流限制
10016,///< 服务器负载过高
10017,///< 所请求的资源不可用
20000,///< 请求参数非法
20001,///< 缺少必填参数
20002,///< 请求协议非法
20003,///< 其他服务端未知错误
20009,///< 请求包含重复元素
20010,///< 请求的元素不存在
20050,///< service不存在
20051,///< ternimal不存在
20100,///< 部分point上传失败
20101,///< 所有point上传失败
20150,///< 数量超过限制