amapTrack

概述

注意:应工信部要求,自本插件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

设置定位类隐私权限

updateLocationPrivacy({params})

params

privacyAgree:

  • 类型:字符串
  • 描述:(可选项)用户同意隐私状态
  • 默认值:didAgree
  • 取值范围:
    • didAgree:已同意
    • notAgree;不同意
    • unknow:未知

privacyShow:

  • 类型:字符串
  • 描述:(可选项)显示隐私弹窗状态
  • 默认值:didShow
  • 取值范围:
    • didShow:已显示
    • notShow;未显示
    • unknow:未知

containStatus:

  • 类型:字符串
  • 描述:(可选项) 集成SDK隐私信息状态
  • 默认值:didContain
  • 取值范围:
    • didContain:已集成
    • notContain;未集成
    • unknow:未知

示例代码

var aMap = api.require('aMapLBS');
aMap.updateLocationPrivacy({
    privacyAgree:'didAgree',
    privacyShow:'didShow',
    containStatus:'didContain'
});

可用性

iOS系统,Android系统

可提供的1.1.0及更高版本

initAmapTrack

初始化

initAmapTrack({params})

params

serviceID:

  • 类型:字符串
  • 描述:服务ID,由服务端获取,创建请参考猎鹰 rest api接口,仅支持iOS端

gatherTimeInterval:

  • 类型:数字类型
  • 描述:(可选项)定位信息的采集周期,单位秒,有效值范围[1, 60]
  • 默认值:2

packTimeInterval:

  • 类型:数字类型
  • 描述:(可选项)定位信息的上传周期,单位秒,有效值范围[5, 3000]
  • 默认值:20

maxSize:

  • 类型:数字类型
  • 描述:(可选项)正常上报轨迹点时将未成功上报的轨迹点缓存在本地,默认最多缓存50MB数据
  • 默认值:50

locationMode:

  • 类型:数字类型
  • 描述:(可选项)定位模式(仅android支持)
  • 默认值:1
  • 取值范围:
    • 1:高精度定位模式:在这种定位模式下,将同时使用高德网络定位和GPS定位,优先返回精度高的定位
    • 2:仅设备定位模式:在这种模式下,将只使用GPS定位。
    • 3:低功耗定位模式:在这种模式下,将只使用高德网络定位

accuracy:

  • 类型:字符串
  • 描述:设定定位精度(仅iOS支持)
  • 默认值:hundredMeters
  • 取值范围:
    • tenMeters:十米
    • hundredMeters:百米
    • kilometer:千米
    • threeKilometers:三千米
    • best:精确度最高

filter:

  • 类型:数字
  • 描述:位置更新所需最小距离(单位米),定位服务会尽可能去获取满足desiredAccuracy的定位结果,但不保证一定会得到满足期望的结果。(仅iOS支持)
  • 默认值:1.0

示例代码

var name = api.require('amapTrack');
name.initAmapTrack({
    serviceID:'',
    gatherTimeInterval:2, 
    packTimeInterval:20, 
    maxSize:50                  
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

startGather

开启猎鹰服务

startGather({params}, callback(ret))

params

serviceID:

  • 类型:数字类型
  • 描述:服务ID,由服务端获取,创建请参考猎鹰 rest api接口(仅Android支持),iOS端为initAmapTrack时的servideid

terminalId:

  • 类型:数字类型
  • 描述:终端id

trackId:

  • 类型:数字类型
  • 描述:指定轨迹id

示例代码

var name = api.require('amapTrack');
name.startGather({
   trackId:,
   serviceID:,
   terminalId:, 
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

stopGather

停止猎鹰服务

stopGather()

serviceID:

  • 类型:数字类型
  • 描述:服务ID,由服务端获取,创建请参考猎鹰rest api接口(仅Android支持),iOS端为initAmapTrack时的

terminalId:

  • 类型:数字类型
  • 描述:终端id(仅android支持),iOS端关闭startGather时传入的id

示例代码

var amapTrack = api.require('amapTrack');
amapTrack.stopGather({
    serviceID:,
    terminalId,
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

startUpload

开启收集上报

startUpload()

示例代码

var amapTrack = api.require('amapTrack');
amapTrack.startUpload();

可用性

iOS 系统,Android 系统 可提供的 1.0.0 及更高版本

stopUpload

停止收集上报

stopUpload()

示例代码

var amapTrack = api.require('amapTrack');
amapTrack.stopUpload();

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setTrackLifecycleListener

设置开启服务、轨迹上传等监听

setTrackLifecycleListener(callback(ret))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:         //布尔类型;true成功,false失败
    type:,    //字符串类型:返回事件类型
                ‘BindServiceCallback’:绑定服务回调,仅支持Android端
                ‘StartGatherCallback’:定位采集开启回调
                ‘StartTrackCallback’:服务启动回调
                ‘StopGatherCallback’:定位采集关闭回调
                ‘StopTrackCallback’:服务关闭回调
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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 及更高版本

addTerminal

增加Terminal

addTerminal({params}, callback(ret))

params

serviceID:

  • 类型:数字类型
  • 描述:服务ID,由服务端获取,创建请参考猎鹰rest api接口,iOS端默认为initAmapTrack时的servideid

terminalName:

  • 类型:字符串
  • 描述:要增加的终端名称

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:         //布尔类型;true成功,false失败
    terminalId:,    //数字类型;终端id 
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

添加轨迹

addTrack({params}, callback(ret))

params

serviceID:

  • 类型:数字类型
  • 描述:服务ID,由服务端获取,创建请参考猎鹰rest api接口,iOS端默认为initAmapTrack时的servideid

terminalId:

  • 类型:数字类型
  • 描述:终端id

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:         //布尔类型;true成功,false失败
    trackId:,    //数字类型;轨迹id
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

查询终端,添加之后才会存在

queryTerminal({params}, callback(ret))

params

serviceID:

  • 类型:数字类型
  • 描述:服务ID,由服务端获取,创建请参考猎鹰rest api接口

terminalName:

  • 类型:字符串
  • 描述:要查询的终端名称,若terminalId有值则忽略本参数

terminalId:

  • 类型:字符串
  • 描述:终端id,仅支持iOS

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:          //布尔类型;true成功,false失败
    terminalId:,     //数字类型;终端id,仅支持Android端
    terminals:[{     //数组类型;,仅支持iOS端
       terminalId:,  //字符串类型;
       terminalName:,//字符串类型;
       desc:,        //字符串类型;description信息
       createTime:,  //数字类型;创建时间,单位毫秒
       locateTime    //数字类型;最后定位时间,单位毫秒
    }]
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

获取终端实时位置(最新位置)

getNewLocation(callback(ret))

params

serviceID:

  • 类型:数字类型
  • 描述:服务ID,由服务端获取,创建请参考猎鹰rest api接口

terminalId:

  • 类型:数字类型
  • 描述:终端id

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

获取终端行驶里程

getMileage({params}, callback(ret))

params

serviceID:

  • 类型:数字类型
  • 描述:服务ID,由服务端获取,创建请参考猎鹰rest api接口(仅Android支持)

terminalId:

  • 类型:数字类型
  • 描述:终端id(仅android支持)

trackId

  • 类型:数字类型
  • 描述:(可选项)轨迹id,(仅android支持)
  • 默认:-1,-1表示包含散点在内的所有轨迹点

hours:

  • 类型:数字类型
  • 默认: 1小时
  • 描述:终端在最近几个小时内的行驶里程

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

获取终端的历史轨迹

getHistoryTrajectory({params}, callback(ret))

params

serviceID:

  • 类型:数字类型
  • 描述:服务ID,由服务端获取,创建请参考猎鹰rest api接口(仅Android支持)

terminalId:

  • 类型:数字类型
  • 描述:终端id

hours:

  • 类型:数字类型
  • 默认: 1小时
  • 描述:终端在最近几个小时内的行驶里程

isTrack:

  • 类型:布尔类型
  • 默认: false
  • 描述:是否包含散点,仅支持android端

trackID:

  • 类型:字符串
  • 描述:您要查询的轨迹(track id);当isTrack为true时,此参数必须填写

denoise:

  • 类型:数字类型
  • 描述:(可选项)是否去噪(仅android支持)
  • 取值范围:0:不去噪,1:去噪
  • 默认值:0

threshold:

  • 类型:数字类型
  • 描述:(可选项)是否进行精度过滤(仅android支持)
  • 取值范围:0:不过滤,1:过滤
  • 默认值:0

mapmatch:

  • 类型:数字类型
  • 描述:(可选项)是否绑路
  • 取值范围:0:不绑路,1:绑路
  • 默认值:0

ispoints:

  • 类型:数字类型
  • 描述:(可选项)是否返回轨迹包含的轨迹点内容
  • 取值范围:0:不返回,1:返回
  • 默认值:0

recoup:

  • 类型:数字类型
  • 描述:(可选项)是否进行距离补偿
  • 取值范围:0:不补偿,1:补偿
  • 默认值:0

gap:

  • 类型:数字类型
  • 描述:(可选项)距离补偿生效点间距,单位:米
  • 默认值:5000

page:

  • 类型:数字类型
  • 描述:(可选项)第几页数据,分页当前仅对查询单条轨迹生效
  • 默认值:1

pageSize:

  • 类型:数字类型
  • 描述:(可选项)每页点个数,分页当前仅对查询单条轨迹生效
  • 取值范围:1-1000
  • 默认值:100

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

查询终端所有轨迹点

queryHistoryTrack({params}, callback(ret))

params

serviceID:

  • 类型:数字类型
  • 描述:服务ID,由服务端获取,创建请参考猎鹰rest api接口

terminalId:

  • 类型:数字类型
  • 描述:终端id

hours:

  • 类型:数字类型
  • 默认: 1小时
  • 描述:终端在最近几个小时内的行驶里程

orde:

  • 类型:数字类型
  • 描述:(可选项)排序规则
  • 取值范围:0:由旧到新,1:由新到旧
  • 默认值:0

mapmatch:

  • 类型:数字类型
  • 描述:(可选项)是否绑路
  • 取值范围:0:不绑路,1:绑路
  • 默认值:0

recoup:

  • 类型:数字类型
  • 描述:(可选项)是否进行距离补偿
  • 取值范围:0:不补偿,1:补偿
  • 默认值:0

gap:

  • 类型:数字类型
  • 描述:(可选项)距离补偿生效点间距,单位:米
  • 默认值:5000

page:

  • 类型:数字类型
  • 描述:(可选项)第几页数据,分页当前仅对查询单条轨迹生效
  • 默认值:1

pageSize:

  • 类型:数字类型
  • 描述:(可选项)每页点个数,分页当前仅对查询单条轨迹生效
  • 取值范围:1-1000
  • 默认值:100

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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,///< 数量超过限制
是否仍需要帮助? 请保持联络!
最后更新于 2024/04/24