swLocate
initLocateSDK startService stopService startLocate startCycleLocate stopCycleLocate submitCollectData queryCollectData deleteCollectData
概述
数位传媒科技有限公司简介
数位传媒科技有限公司是专注的城市数字化建设者,基于机器视觉技术和多信号指纹定位技术等创新人工智能技术,实现室内物理空间的数字化构建和感知,并为移动互联网、AIoT、智慧城市建设等领域提供服务。
场景识别功能服务
- 定位功能:区别于高德、百度等产品的室外定位能力,我们主要是精准的室内定位能力,定位到的位置信息包括用户所在的城市、行政区域、街道、商圈、楼宇、楼层、店铺及经纬度等信息。
- 采集功能:客户可以自己采集室内的位置信息并上传到数位云服务器,之后就可以在采集过的区域进行定位了,定位返回的数据取决于采集时上传的数据。
- 采集查询功能:客户可以查询采集过的位置信息。
- 采集删除功能:客户可以删除采集过的位置信息。
场景识别模块概述
本模块封装了数位传媒科技场景识别Android SDK的核心功能,集成了主动定位、周期定位、采集、采集查询、采集删除等功能。客户接入后,可以快速实现室内精准位置定位的能力。(目前只支持Android平台)
工作原理
模块通过上传用户的设备数据和手机获取到的当前位置的信号信息(主要是必传的WiFi信号,同时也包括基站、蓝牙、光强、地磁、方向等非必传信号)到服务器来定位;
周期定位运行过程中会通过定时器设定每隔一定周期在设备权限允许的前提下扫描设备的WiFi列表,并通过与最近一次的扫描结果进行比较,上一次信号变化超过设定的阈值,调用定位接口进行定位;
应用列表、设备信息等其他的上报数据通过设定周期,定期在定位接口中同时上报数据到服务器。
模块使用攻略
使用之前须从数位云平台申请开发者账号并创建应用,获取 appid 和 appkey。
使用此模块之前须先配置 config.xml 文件,配置完成之后,需提交代码并通过云端编译生效,配置方法如下:
- 参数:com.shuwei.location.APP_ID、com.shuwei.location.APP_KEY
- 配置示例:
<permission name="readPhoneState" />
<permission name="location" />
<permission name="internet" />
<meta-data name="com.shuwei.location.APP_ID" value="您应用的 appid" />
<meta-data name="com.shuwei.location.APP_KEY" value="您应用的 appkey" />
字段说明:
com.shuwei.location.APP_ID:(必须配置)从数位云开发平台获取的 appid。 com.shuwei.location.APP_KEY:(必须配置)从数位云开发平台获取的 appkey。
权限说明:
该模块需要读取手机状态权限、定位权限及网络权限
实例widget下载地址
模块接口
initLocateSDK
初始化场景识别模块。
initLocateSDK({params})
params
debug:
- 类型:布尔型
- 描述:(可选项)是否开启debug模式,如果打开,则会输出模块内部的运行日志。
- 默认值:false
示例代码
var swLocate = api.require("swLocate");
swLocate.initLocateSDK({
debug: true
});
可用性
Android系统
可提供的1.0.0及更高版本
startService
启动场景识别服务,场景识别模块中的所有功能,都依赖于场景识别服务的启动。
startService(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;true||false;当前服务是否启动成功
}
示例代码
var swLocate = api.require("swLocate");
swLocate.startService(function(ret) {
if (ret.status) {
alert("服务启动成功");
} else {
alert("服务启动失败");
}
});
可用性
Android系统
可提供的1.0.0及更高版本
stopService
停止场景识别服务,当不再需要使用场景识别模块中的功能时,可以停止场景识别服务以释放服务资源。
stopService()
示例代码
var swLocate = api.require("swLocate");
swLocate.stopService();
可用性
Android系统
可提供的1.0.0及更高版本
startLocate
调用主动定位接口,获取精准的室内位置信息。主动定位是每调用一次只获取一次定位结果。
startLocate({params}, callback(ret, err))
params
ext:
- 类型:字符串
- 描述:(可选项)扩展字段,有些应用场景或者业务下,集成方需要在场景识别的时候加上自己的标识或者数据,因此我们开放了一个扩展参数字段。扩展参数可以根据客户的要求来配置是否在对应的回调接口中返回。如果配置为返回,则会原样返回;如果配置为不返回,则不会返回该字段。
- 特别注意:扩展参数请尽量勿传入过长的字符串,以减少无谓的的带宽流量消耗,目前暂时没有对此扩展参数长度进行限制,但是不保证后期前/后端不会进行的截取操作,如有任何问题,请务必和我们进行沟通协商。
passThrough:
- 类型:字符串
- 描述:(可选项)透传字段。透传字段和扩展字段的使用类似,不过透传字段是不需要通过后台配置是否返回的,而是一定会在对应的回调接口中原样返回的。主要用来区分不同触发请求的。
- 特别注意:透传参数请尽量勿传入过长的字符串,以减少无谓的的带宽流量消耗,目前暂时没有对此透传参数长度进行限制,但是不保证后期前/后端不会进行截取操作,如有任何问题,请务必和我们进行沟通协商。
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;错误码
msg: 'OK', //字符串类型;错误信息说明
timestamp: 1586585334775, //数字类型;时间戳
poiId: '36d53dc0c473d38b', //字符串类型;POI的 id
name: 'zara', //字符串类型;POI名称
floorName: '1', //字符串类型;楼层
buliding: '海岸城购物中心', //字符串类型;楼宇
area: '海岸城购物中心', //字符串类型;商圈
address: '文心四路14', //字符串类型;详细地址
street: '文心四路14', //字符串类型;街道
region: '南山区', //字符串类型;行政区
city: '深圳市', //字符串类型;城市
brand: 'zara', //字符串类型;品牌
areaCategory: '购物中心;商场', //字符串类型;商圈分类
areaAttribute: "档次:高档', //字符串类型;商圈属性
poiCategory: '购物;服装", //字符串类型;POI分类
poiAttribute: '风格:潮流时尚|品牌来源:欧美', //字符串类型;POI属性
coordinateSystem: 'GCJ02', //字符串类型;经纬度坐标系类型:BD09-百度坐标系 GCJ02-火星坐标系 WGS84-地球坐标系
longitude: 113.936074, //数字类型;经度
latitude: 22.51703, //数字类型;纬度
ext: 'ext22', //字符串类型;定位时上传的扩展字段
passThrough: 'pt22', //字符串类型;透传字段
collectExt: '{\"name\": \"zhangsan\", \"age\": 18 }', //字符串类型;采集时上传的透传字段
requestSign: '439d8190a0ac977306ae436859bd4a9b25a64ada' //字符串类型;请求签名
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 201001, //数字类型;错误码
msg: '定位无结果' //字符串类型;错误信息说明
}
示例代码
var swLocate = api.require("swLocate");
swLocate.startLocate({
ext: 'ext11',
passThrough: 'pt11'
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret))
} else {
alert(JSON.stringify(err));
}
});
可用性
Android系统
可提供的1.0.0及更高版本
startCycleLocate
调用周期定位接口,获取精准的室内位置信息。周期定位调用一次之后,会按照一定的时间频率返回定位结果,时间频率可以在数位云开发平台上设置,默认是5分钟返回一次定位结果。
startCycleLocate({params}, callback(ret, err))
params
ext:
- 类型:字符串
- 描述:(可选项)扩展字段,有些应用场景或者业务下,集成方需要在场景识别的时候加上自己的标识或者数据,因此我们开放了一个扩展参数字段。扩展参数可以根据客户的要求来配置是否在对应的回调接口中返回。如果配置为返回,则会原样返回;如果配置为不返回,则不会返回该字段。
- 特别注意:扩展参数请尽量勿传入过长的字符串,以减少无谓的的带宽流量消耗,目前暂时没有对此扩展参数长度进行限制,但是不保证后期前/后端不会进行的截取操作,如有任何问题,请务必和我们进行沟通协商。
passThrough:
- 类型:字符串
- 描述:(可选项)透传字段。透传字段和扩展字段的使用类似,不过透传字段是不需要通过后台配置是否返回的,而是一定会在对应的回调接口中原样返回的。主要用来区分不同触发请求的。
- 特别注意:透传参数请尽量勿传入过长的字符串,以减少无谓的的带宽流量消耗,目前暂时没有对此透传参数长度进行限制,但是不保证后期前/后端不会进行截取操作,如有任何问题,请务必和我们进行沟通协商。
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;错误码
msg: 'OK', //字符串类型;错误信息说明
timestamp: 1586585334775, //数字类型;时间戳
poiId: '36d53dc0c473d38b', //字符串类型;POI的 id
name: 'zara', //字符串类型;POI名称
floorName: '1', //字符串类型;楼层
buliding: '海岸城购物中心', //字符串类型;楼宇
area: '海岸城购物中心', //字符串类型;商圈
address: '文心四路14', //字符串类型;详细地址
street: '文心四路14', //字符串类型;街道
region: '南山区', //字符串类型;行政区
city: '深圳市', //字符串类型;城市
brand: 'zara', //字符串类型;品牌
areaCategory: '购物中心;商场', //字符串类型;商圈分类
areaAttribute: "档次:高档', //字符串类型;商圈属性
poiCategory: '购物;服装", //字符串类型;POI分类
poiAttribute: '风格:潮流时尚|品牌来源:欧美', //字符串类型;POI属性
coordinateSystem: 'GCJ02', //字符串类型;经纬度坐标系类型:BD09-百度坐标系 GCJ02-火星坐标系 WGS84-地球坐标系
longitude: 113.936074, //数字类型;经度
latitude: 22.51703, //数字类型;纬度
ext: 'ext22', //字符串类型;定位时上传的扩展字段
passThrough: 'pt22', //字符串类型;透传字段
collectExt: '{\"name\": \"zhangsan\", \"age\": 18 }', //字符串类型;采集时上传的透传字段
requestSign: '439d8190a0ac977306ae436859bd4a9b25a64ada' //字符串类型;请求签名
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 201001, //数字类型;错误码
msg: '定位无结果' //字符串类型;错误信息说明
}
示例代码
var swLocate = api.require("swLocate");
swLocate.startCycleLocate({
ext: 'ext22',
passThrough: 'pt22'
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret))
} else {
alert(JSON.stringify(err));
}
});
可用性
Android系统
可提供的1.0.0及更高版本
stopCycleLocate
停止周期定位,不再按照设置的时间频率返回定位结果。
stopCycleLocate()
示例代码
var swLocate = api.require("swLocate");
swLocate.stopCycleLocate();
可用性
Android系统
可提供的1.0.0及更高版本
submitCollectData
采集位置数据,并会将对应的位置信息和信号数据上传到数位云服务器。
submitCollectData({params}, callback(ret, err))
params
name:
- 类型:字符串
- 描述:(必选项)采集点的名称或者店铺的名称
floorName:
- 类型:字符串
- 描述:(可选项)采集点的所在的楼层名称
building:
- 类型:字符串
- 描述:(可选项)采集点的所在的楼宇名称
area:
- 类型:字符串
- 描述:(可选项)采集点的所在的商圈名称
address:
- 类型:字符串
- 描述:(可选项)采集点的所在的详细地址
street:
- 类型:字符串
- 描述:(可选项)采集点的所在的街道
region:
- 类型:字符串
- 描述:(可选项)采集点的所在的行政区
area:
- 类型:字符串
- 描述:(可选项)采集点的所在的商圈名称
city:
- 类型:字符串
- 描述:(可选项)采集点的所在的城市
province:
- 类型:字符串
- 描述:(可选项)采集点的所在的省份
collectExt:
- 类型:字符串
- 描述:(可选项)扩展字段,有些应用场景或者业务下,集成方需要在采集位置点的时候加上自己的标识或者数据,因此我们开放了一个扩展参数字段。该扩展字段必须是json格式的字符串。
passThrough:
- 类型:字符串
- 描述:(可选项)透传字段。透传字段和扩展字段的使用类似,不过透传字段是不需要通过后台配置是否返回的,而是一定会在对应的回调接口中原样返回的。主要用来区分不同触发请求的。
poiId:
- 类型:字符串
- 描述:(可选项)采集点的 id。主要用于“单店多点”采集功能,即在同一个店铺的多个位置进行采集,如:采集同一个店铺的门口、收银台、试衣间、卫生间等多个点位。一个店铺对应一个 poiId,一个采集点对应一个 collectPoint,poiId和collectPoint是一对多的关系。
说明:每个店铺第一次采集时不用传入 poiId,当第一个采集点采集成功后,采集回调结果中会返回一个新生成的 poiId 字段的值,以后采集的点,如果想关联到同一个 poiId 下,只需要在采集的时候带上 poiId 的值即可。如果第二次上传了 poiId ,同时也更改了 name 字段的值,则定位的结果以更改后的为准。
collectorId:
- 类型:字符串
- 描述:(可选项)采集者的 id。通过设置这个字段,可以指明该条采集数据是由哪个采集者上传的,之后在查询或删除对应的采集信息时,也需要带上同样的采集者id字段。如果没有传递这个字段,则默认使用设备的唯一标识作为采集者id字段。建议开发者传递用户id或其他能唯一识别用户的字符串到这个字段以便进行用户账号对于采集数据的权限控制。
特别注意:请根据商务合同中确定的需要采集的数据进行传递。省、市、区、街道、楼宇、楼层不得超过64个字符长度,商圈、name字段不得超过128个字符长度,自定义扩展字段必须是json格式的字符串且不得超过255个字符长度,自定义透传字段可以是任意字符串且不得超过255个字符长度,采集者id字段是任意字符串且不得超过255个字符长度。
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;错误码
msg: 'OK', //字符串类型;错误信息说明
timestamp: 1586585334775, //数字类型;时间戳
poiId: 'zw7ex2vpj1vj43oq', //字符串类型;POI的 id
passThrough: 'pt33', //字符串类型;透传字段
requestSign: '439d8190a0ac977306ae436859bd4a9b25a64ada', //字符串类型;请求签名
collectPoints: [ //数组类型
timestamp: 1586585334775, //数字类型;时间戳
cpCode: 'w9m6ldojrq38450x' //字符串类型;采集点的 id
longitude: 113.936074, //数字类型;经度
latitude: 22.51703 //数字类型;纬度
]
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 206002, //数字类型;错误码
msg: 'poi字段太长' //字符串类型;错误信息说明
}
示例代码
var swLocate = api.require("swLocate");
swLocate.submitCollectData({
name: '数位科技', //字符串类型;POI的名称
floorName: '29', //字符串类型;楼层
building: '彩讯科创中心', //字符串类型;楼宇
area: '海岸城购物中心', //字符串类型;商圈
address: '文心四路14', //字符串类型;详细地址
street: '文心四路14', //字符串类型;街道
region: '南山区', //字符串类型;行政区
city: '深圳市', //字符串类型;城市
provice: '广东省', //字符串类型;省份
collectExt: '{\"name\": \"zhangsan\", \"age\": 18 }', //Json字符串类型;采集扩展字段
passThrough: 'pt33', //字符串类型;透传字段
poiId: '36d53dc0c473d38b', //字符串类型;POI的 id
collectorId: '2ien3ddidj3jd33' //字符串类型;采集者的 id
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret))
} else {
alert(JSON.stringify(err));
}
});
可用性
Android系统
可提供的1.0.0及更高版本
queryCollectData
采集位置数据,并会将对应的位置信息和信号数据上传到数位云服务器。
queryCollectData({params}, callback(ret, err))
params
pageOffset:
- 类型:数字类型
- 描述:(可选项)当前页,即查询第几页的数据
- 默认值:1
pageSize:
- 类型:数字类型
- 描述:(可选项)每一页的数量
- 默认值:10
passThrough:
- 类型:字符串
- 描述:(可选项)透传字段。透传字段和扩展字段的使用类似,不过透传字段是不需要通过后台配置是否返回的,而是一定会在对应的回调接口中原样返回的。主要用来区分不同触发请求的。
collectorId:
- 类型:字符串
- 描述:(可选项)采集者的 id。通过设置这个字段,可以指明该条采集数据是由哪个采集者上传的,之后在查询或删除对应的采集信息时,也需要带上同样的采集者id字段。如果没有传递这个字段,则默认使用设备的唯一标识作为采集者id字段。建议开发者传递用户id或其他能唯一识别用户的字符串到这个字段以便进行用户账号对于采集数据的权限控制。
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;错误码
msg: 'OK', //字符串类型;错误信息说明
timestamp: 1586585334775, //数字类型;时间戳
recordsCount: 1, //数字类型;总的采集数
passThrough: 'pt55',
requestSign: '43d97df3049ba0440a35da31091de154e43fecba', //字符串类型;请求签名
poiPoints: [ //数组类型;POI点的集合
timestamp: 1586585334775, //数字类型;时间戳
poiId: 'zw7ex2vpj1vj43oq' //字符串类型;POI的 id
name: '数位科技', //字符串类型;POI的名称
floorName: '29', //字符串类型;楼层
building: '彩讯科创中心', //字符串类型;楼宇
area: '海岸城购物中心', //字符串类型;商圈
address: '文心四路14', //字符串类型;详细地址
street: '文心四路14', //字符串类型;街道
region: '南山区', //字符串类型;行政区
city: '深圳市', //字符串类型;城市
provice: '广东省', //字符串类型;省份
collectExt: '{\"name\": \"zhangsan\", \"age\": 18 }', //Json字符串类型;采集扩展字段
collectPoints: [ //数组类型;采集点的集合
timestamp: 1586585334775, //数字类型;时间戳
cpCode: '0kv6vynzvj1x6mrg', //字符串类型;采集点的 id
longitude: 113.936074, //数字类型;经度
latitude: 22.51703 //数字类型;纬度
]
]
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 206010, //数字类型;错误码
msg: '当前页应该大于0' //字符串类型;错误信息说明
}
示例代码
var swLocate = api.require("swLocate");
swLocate.queryCollectData({
pageOffset: 1, //数字类型;当前页
pageSize: 10, //数字类型;每一页的数量
passThrough: 'pt55', //字符串类型;透传字段
collectorId: '2ien3ddidj3jd33' //字符串类型;采集者的 id
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret))
} else {
alert(JSON.stringify(err));
}
});
可用性
Android系统
可提供的1.0.0及更高版本
deleteCollectData
采集位置数据,并会将对应的位置信息和信号数据上传到数位云服务器。
deleteCollectData({params}, callback(ret, err))
params
poiIds:
- 类型:字符串数组类型
- 描述:(可选项)需要删除的兴趣点集合,对应采集查询结果中的 poiPoints 的 poiId
cpCodes:
- 类型:字符串数组类型
- 描述:(可选项)需要删除的采集点集合,对应采集查询中的 collectPoints 的 cpCode
passThrough:
- 类型:字符串
- 描述:(可选项)透传字段。透传字段和扩展字段的使用类似,不过透传字段是不需要通过后台配置是否返回的,而是一定会在对应的回调接口中原样返回的。主要用来区分不同触发请求的。
collectorId:
- 类型:字符串
- 描述:(可选项)采集者的 id。通过设置这个字段,可以指明该条采集数据是由哪个采集者上传的,之后在查询或删除对应的采集信息时,也需要带上同样的采集者id字段。如果没有传递这个字段,则默认使用设备的唯一标识作为采集者id字段。建议开发者传递用户id或其他能唯一识别用户的字符串到这个字段以便进行用户账号对于采集数据的权限控制。
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;错误码
msg: 'OK', //字符串类型;错误信息说明
timestamp: 1586585334775, //数字类型;时间戳
passThrough: 'pt66', //字符串类型;透传字段
requestSign: '43d97df3049ba0440a35da31091de154e43fecba' //字符串类型;请求签名
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 206009, //数字类型;错误码
msg: 'POI不存在或已经删除' //字符串类型;错误信息说明
}
示例代码
var swLocate = api.require("swLocate");
swLocate.deleteCollectData({
poiIds: [ //字符串数组类型;poiId的集合
"mpned2k5yqq062vq", //字符串类型;POI的 id
'zo160732gp3r4pjn'
],
cpCodes: [ //字符串数组类型;cpCode的集合
"w9m6ldojrq38450x", //字符串类型;采集点的 id
'w9m6ldojrq83750x'
],
passThrough: 'pt66', //字符串类型;透传字段
collectorId: '2ien3ddidj3jd33' //字符串类型;采集者的 id
}, function(ret, err) {
endTime = (new Date()).getTime();
if (ret) {
alert(JSON.stringify(ret))
} else {
alert(JSON.stringify(err));
}
alert("采集查询耗时:" + (endTime - startTime) + "ms");
});
可用性
Android系统
可提供的1.0.0及更高版本
Android Q的适配
设备唯一标示IMEI的获取
在Android Q上将无法获取设备的IMEI 信息,我们已经对此获取容错处理,在Android Q手机上不会报错。
MAC地址的获取
在Android Q上获取到的MAC地址将是随机的,导致无法通过MAC追踪用户,目前对这个接口做了容错处理,不会报错,对于获取到的MAC是随机的,暂时没有处理。
定位权限的变化
在Android Q上,如果应用想要在后台获取定位权限,需要申请ACCESS_BACKGROUND_LOCATION 权限。对应APP应用,如果应用的 targetSdkVersion=Q,必须动态申请 ACCESS_BACKGROUND_LOCATION 权限;如果应用的 targetSdkVersion<Q,并且申请了 ACCESS_FINE_LOCATION 和 ACCESS_COARSE_LOCATION 权限,系统会自动授予 ACCESS_BACKGROUND_LOCATION 权限。对于希望在后台获取定位功能的客户,请适配 ACCESS_BACKGROUND_LOCATION 的权限判断。
无线信号的获取
在Android Q上想要扫描WiFi、蓝牙及使用 WLAN API 都必须拥有 ACCESS_FINE_LOCATION 权限才行。所以请客户的应用在针对Android Q做适配的时候,务必申请到 ACCESS_FINE_LOCATION 权限,否则会影响定位功能的结果。
外部存储设备权限的变化
每个应用将只能访问自己应用创建的文件,且替换并取消了原来的 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 权限,改而使用 READ_MEDIA_IMAGES, READ_MEDIA_VIDEO, READ_MEDIA_AUDIO 等权限,由于我们SDK中并不需要读取外部存储设备的权限,所以对于我们 SDK 的影响不大。
非Android SDK接口限制
Android Q对于通过反射获取系统中隐藏接口功能的API做了限制,目前我们SDK中只会通过反射获取应用的Activity任务栈中Activity的个数,这个API接口目前在Android Q限制的灰名单中,暂时没有影响。
WiFi信号扫描限制
从Android P开始,系统对于WIFI信号的扫描做了限制,前台应用 2 分钟只能获取4次WiFi,所有后台应用30分钟内一共只能获取到1次WiFi信号,所以请客户控制好主动定位的频率。
特别注意:
我们SDK已经针对Android Q做了适配,关于SDK中需要使用到的权限,需要客户的应用自己申请。
采集和定位结果码说明
retCode | msg | remark |
---|---|---|
0 | OK | 成功 |
100001 | System error | 服务器错误 |
100002 | Environment error | 环境错误 |
100003 | Miss required parameter | 缺少必传参数 |
100004 | Parameter value invalid | 参数格式错误 |
100005 | Sign error | 签名错误 |
100006 | Package name error | 包名错误 |
100007 | Request data is null | 请求数据为空 |
100008 | Lack authorization | 限制访问。缺少头部授权信息 |
100009 | Restricted access.App TPS reach limit | 限制访问。应用每秒事务数达到上限 |
100010 | Restricted access.Transaction reach daily limit | 限制访问。达到每天事务数配额上限 |
100011 | Restricted access.TPS reach limit | 限制访问。Server tps 达到上限 |
10002001 | Illegal oid.Fake oid | 疑似虚假设备号 |
10002002 | Illegal oid.Oid request frequency is too high | 高频请求 |
201001 | No result | 定位失败 |
203004 | AppId invalid | AppId无效 |
203005 | App is disabled | App不可用 |
203006 | App type error | App类型错误 |
206001 | Lack of required POI fields | 缺少必须的poi字段 |
206002 | POI field too long | poi字段太长 |
206003 | Containing sensitive words | 包含敏感词 |
206004 | Collect is turned off | UGC采集未开启 |
206005 | Collect reach daily limit | UGC采集每日配额达到上限 |
206006 | PoiCode value invalid | poiCode无效 |
206007 | PoiCode value invalid | poiCode无效 |
206008 | PoiCode and collector do not match | poiCode和collectId不匹配 |
206009 | Data does not exist or has been deleted | POI不存在或已经删除 |
206010 | The value of CP should be greater than 0 | 当前页应该大于0 |
206011 | The value of PS should be greater than 0 | 每页页大小应该大于0 |
206012 | The value of province containing sensitive words | 省包含敏感词 |
206013 | The value of city containing sensitive words | 城市包含敏感词 |
206014 | The value of region containing sensitive words | 区域包含敏感词 |
206015 | The value of street containing sensitive words | 街道包含敏感词 |
206016 | The value of address containing sensitive words | 地址包含敏感词 |
206017 | The value of area containing sensitive words | 商圈包含敏感词 |
206018 | The value of building containing sensitive words | 楼宇包含敏感词 |
206019 | The value of floorName containing sensitive words | 楼层名称包含敏感词 |
206020 | The value of poi name containing sensitive words | POI名称包含敏感词 |
206021 | The value of ext containing sensitive words | 扩展字段包含敏感词 |
206023 | The value of ext must be Json | 扩展字段必须是Json格式的 |
300001 | Prepare launch resources error | SDK准备请求资源失败 |
300002 | The location response parse error | SDK解析定位结果数据失败 |
300004 | No http message | SDK检测定位结果中没有msg信息 |
300005 | No available network | SDK检测没有可用的网络 |
300006 | Data verify failed | SDK检测定位请求数据不符合要求 |
300007 | Inner error | SDK内部执行流程出现异常 |
300008 | Http header is error | SDK检测Http请求头错误 |
300009 | Sign error | SDK检测签名错误 |
300010 | Http request timeout | SDK请求定位超时 |
300011 | Http other error | SDK 请求http 出错 |
300015 | the collect response parse error | SDK检测采集请求数据不符合要求 |
300016 | the query request json error | SDK检测采集查询请求数据不符合要求 |
300017 | the query request other error | SDK检测采集查询请求数据其他错误 |
300018 | the query response parse error | SDK检测采集查询响应数据解析失败 |
300019 | the delete request json error | SDK检测采集删除请求数据不符合要求 |
300020 | the delete request other error | SDK检测采集删除请求数据其他错误 |
300021 | the delete response parse error | SDK检测采集删除响应数据解析失败 |