privacyCompliance singlePosition multiplePosition stopMultiplePosition backgroundPosition stopBackgroundPosition scenePosition stopScenePosition [calculateDistance](# calculateDistance) distanceContains positioningAid onFootOrRidePosition getFootOrRidePosition stopFootOrRidePosition notAllowAnalogGPS allowAnalogGPS
TencentLocation 封装了腾讯定位原生 SDK ,集成了腾讯定位的常用基本接口。使用本插件可以轻松实现单次定位、连续定位、后台定位、场景定位等功能。
注意事项:
使用本插件前需要先获取AppKey
得到AppKey之后,需要配置 config.xml 文件,配置方法如下:
<widget>
<meta-data name="TencentMapSDK" value="您申请的Key"/>
</widget>
配置 config 文件
在iOS端申请的 AK,需要配置在 config.xml 文件内。配置方法如下:
<feature name="TencentLocation">
<param name="ios_api_key" value="P5KBZ-JB5K3-TH63A-3UFIP-WFAQZ-3SBT4" />
</feature>
字段描述:
ios_api_key:在腾讯开放平台申请的 iOS 版 ak
注意:
在 iOS 平台上,若要支持后台定位需配置 config.xml 文件的 location 字段。应用打包前勾选申请前后台定位提示语。
申请同意隐私政策。使用本插件必须首先实现本方法,同意定位 SDK 的隐私政策后才能正常使用定位SDK功能
privacyCompliance({param})
agreeprivacy:
var locationSDK = api.require('TencentLocation');
var param = {
"agreeprivacy":true
}
locationSDK.privacyCompliance(param);
Android系统,iOS系统
可提供的1.0.0及更高版本
获取当前 app 定位权限,仅支持iOS端
authorizationStatus(callback(ret))
ret:
{
status:"" //数字类型;状态码
//0:NotDetermined
//1:Restricted
//2:Denied
//3:AuthorizedAlways
//4:AuthorizedWhenInUse
}
var locationSDK = api.require('TencentLocation');
locationSDK.authorizationStatus(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS系统
可提供的1.0.0及更高版本
请求前后台运行时的定位权限,仅支持iOS端
requestAlwaysAuthorization()
var locationSDK = api.require('TencentLocation');
locationSDK.requestAlwaysAuthorization();
iOS系统
可提供的1.0.0及更高版本
请求使用app时的定位权限,仅支持iOS端
requestWhenInUseAuthorization()
var locationSDK = api.require('TencentLocation');
locationSDK.requestWhenInUseAuthorization();
iOS系统
可提供的1.0.0及更高版本
发起单次定位,只返回一次定位结果。一般情况下,单次定位只会返回网络定位信息
singlePosition(callback(ret))
ret:
{
status:"" //布尔类型;true||false
msg:"" //字符串类型;取值范围:
//"定位成功"(定位成功时会返回此字段)
//"定位失败,请检查您的网络"(由于网络原因导致的定位失败会返回此字段)
//"定位失败,请检查是否打开定位权限"(由于定位权限原因导致的定位失败会返回此字段)
nation:"" //国家
province:"" //省
city:"" //市
address:"" //地址
buildingName:"" //所处建筑名称
latitude:"" //纬度
longitude:"" //经度
provider:"" //字符串类型;定位来源
//error:错误,可能未开启
//drunkown:定位结果来源未知
//fusion:定位结果来源融合的结果
//GPS:定位结果来源GPS
//netWork:定位结果来源网络
}
var locationSDK = api.require('TencentLocation');
locationSDK.singlePosition(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
Android系统,iOS系统
可提供的1.0.0及更高版本
停止单次定位,仅支持 iOS 端
stopSinglePosition()
var locationSDK = api.require('TencentLocation');
locationSDK.stopSinglePosition();
iOS系统
可提供的1.0.0及更高版本
发起连续定位。用户发起一次定位请求后,按照用户指定的周期返回定位结果
multiplePosition({params},callback(ret))
timer:
useGPS:
useDirection:
useIndoorLocationMode:
level:
pattern:
ret:
{
status:"" //布尔类型;true||false
msg:"" //字符串类型;取值范围:
//"定位成功"(定位成功时会返回此字段)
//"定位失败,请检查您的网络"(由于网络原因导致的定位失败会返回此字段)
//"定位失败,请检查是否打开定位权限"(由于定位权限原因导致的定位失败会返回此字段)
nation:"" //国家
province:"" //省份
city:"" //城市
address:"" //地址
buildingName:"" //所处建筑名称
latitude:"" //纬度
longitude:"" //经度
provider:"" //定位来源
}
var locationSDK = api.require('TencentLocation');
var param = {
"timer":5000,
"useGPS":true,
"useDirection":true,
"useIndoorLocationMode":true,
"requestLevel":3,
"pattern":"highAccuracy"
}
locationSDK.multiplePosition(param,function(ret){
console.log(JSON.stringify(ret));
})}
Android系统,iOS系统
可提供的1.0.0及更高版本
停止连续定位
stopMultiplePosition()
var locationSDK = api.require('TencentLocation');
locationSDK.stopMultiplePosition();
Android系统,iOS系统
可提供的1.0.0及更高版本
开启更新定位朝向,仅支持 iOS 端
startUpdatingHeading({params},callback(ret))
timer:
ret:
{
status:, //布尔类型;是否成功
magneticHeading:"" //数字类型;磁场方向,0为正北
trueHeading:"" //数字类型;地理方向,0为正北
headingAccuracy:"" //数字类型;精度
timestamp:"" //字符串类型;时间戳
}
var locationSDK = api.require('TencentLocation');
locationSDK.startUpdatingHeading({
timer:2000
},function(ret){
console.log(JSON.stringify(ret));
})
iOS系统
可提供的1.0.0及更高版本
结束更新定位朝向,仅支持iOS 端
stopUpdatingHeading()
var locationSDK = api.require('TencentLocation');
locationSDK.stopUpdatingHeading();
iOS系统
可提供的1.0.0及更高版本
开启后台定位。当 App 进程处于后台时并且有需求使用定位服务时使用。如果您的应用已经存在前台服务,那么不需要使用后台定位方法
注意:本接口仅支持 Android 端,iOS端配置后台功能即可
backgroundPosition({params},callback(ret))
timer:
useGPS:
useDirection:
useIndoorLocationMode:
ret:
{
status:"" //布尔类型;true||false
msg:"" //字符串类型;取值范围:
//"定位成功"(定位成功时会返回此字段)
//"定位失败,请检查您的网络"(由于网络原因导致的定位失败会返回此字段)
//"定位失败,请检查是否打开定位权限"(由于定位权限原因导致的定位失败会返回此字段)
nation:"" //国家
province:"" //省份
city:"" //城市
address:"" //地址
buildingName:"" //所处建筑名称
latitude:"" //纬度
longitude:"" //经度
provider:"" //定位来源
}
var locationSDK = api.require('TencentLocation');
var param = {
"timer":3000,
"useGPS":true,
"useDirection":true,
"useIndoorLocationMode":true,
}
locationSDK.backgroundPosition(param,function(ret){
console.log(JSON.stringify(ret));
});
Android系统,iOS系统
可提供的1.0.0及更高版本
停止后台定位服务
注意:本接口仅支持 Android 端,iOS端配置后台功能即可
stopBackgroundPosition()
var locationSDK = api.require('TencentLocation');
locationSDK.stopBackgroundPosition();
Android系统,iOS系统
可提供的1.0.0及更高版本
根据场景请求定位。根据不同需求场景返回适合当前场景的定位结果
注意:本接口只支持 Android 端
scenePosition({param},callback(ret))
scenc:
ret:
{
status:"" //布尔类型;true||false
msg:"" //字符串类型;取值范围:
//"定位成功"(定位成功时会返回此字段)
//"定位失败"(由于定位场景选择错误导致的定位失败会返回此字段)
address:"" //地址
buildingName:"" //所处建筑名称
latitude:"" //维度
Longitude:"" //经度
altitude:"" //海拔
cityCode:"" //所处城市的城市代码
province:"" //省
district:"" //区
town:"" //镇
}
var locationSDK = api.require('TencentLocation');
var param = {
"scenc":"sport"
}
locationSDK.scenePosition(param,function(ret){
console.log(JSON.stringify(ret));
});
Android系统,iOS系统
可提供的1.0.0及更高版本
停止场景定位
注意:本接口只支持Android端
stopScenePosition()
var locationSDK = api.require('TencentLocation');
locationSDK.stopScenePosition();
Android系统,iOS系统
可提供的1.0.0及更高版本
根据两位置的经纬度,计算两点之间的距离
calculateDistance({param},callback(ret))
aLatitude:
aLongitude:
bLatitude:
bLongitude:
ret:
{
distance:"" //数字类型;两点之间距离
}
var locationSDK = api.require('TencentLocation');
var param = {
aLatitude:40,
aLongitude:50,
bLatitude:50,
bLongitude:50
}
locationSDK.calculateDistance(param,function(ret){
api.alert({msg: JSON.stringify(ret)});
})
Android系统,iOS系统
可提供的1.0.0及更高版本
判断一个点是否在一个圆形区域内。通过传入中心点的经纬度、圆形区域的半径和当前位置的经纬度进行判断
注意:本接口只支持Android端
distanceContains({params},callback(ret))
centerLatitude
centerLongitude
latitude
longitude
radius
{
status:"" //布尔类型;取值范围:
//true(当前位置坐标处于圆形区域内会返回该字段)
//false(当前位置坐标未处于圆形区域内会返回该字段)
}
var locationSDK = api.require('TencentLocation');
var param = {
"centerLatitude":40,
"centerLongitude":41.5,
"latitude":40,
"longitude":41.50111,
"radius":1000
}
locationSDK.distanceContains(param,function(ret){
api.alert({msg: JSON.stringify(ret)});
})
Android系统,iOS系统
可提供的1.0.0及更高版本
判断用户设备是否支持GPS、是否使用GPS定位、是否使用网络定位
注意:本接口只支持Android端
positioningAid(callback(ret))
{
isSupportGPS:"" //布尔类型;true||false
isFromGps:"" //布尔类型;true||false
isFromNetwork:"" //布尔类型;true||false
}
var locationSDK = api.require('TencentLocation');
locationSDK.positioningAid(function(ret){
api.alert({msg: JSON.stringify(ret)});
})
Android系统,iOS系统
可提供的1.0.0及更高版本
启动步骑行惯导。步骑惯导是在GPS定位的基础上融合传感器信号进行的推导,针对步骑行场景做的强化。步骑行惯导生效需要满足条件包括GPS,且系统传感器插件可用。注意:
1.该方法只用于启动步骑行惯导,不能获取惯导结果,惯导结果使用 getFootOrRidePosition() 获取
2.步骑惯导和连续定位会有冲突,在确定应用场景对步骑型强相关时再使用该API,且无需启动连续定位
onFootOrRidePosition({param},callback(ret))
pattern:
{
"status":"" //布尔类型;true||false
"msg":"" //字符串类型;取值范围:
//"步骑行惯导启动成功"(步骑行惯导启动成功返回此字段)
//"步骑行惯导启动失败"(步骑行惯导启动失败返回此字段)
//"模式选择错误"(惯导场景传入错误字符时返回此字段)
//"当前设备不支持惯导功能"(设备不支持惯导功能时返回此字段)
}
var locationSDK = api.require('TencentLocation');
var param = {
"pattern":"walk"
}
locationSDK.onFootOrRidePosition(param,function(ret){
api.alert({msg: JSON.stringify(ret)});
});
Android系统,iOS系统
可提供的1.0.0及更高版本
获取步骑行惯导定位结果
注意:调用本方法前需要先调用 onFootOrRidePosition() 方法
getFootOrRideResult(callback(ret))
{
status:"" //布尔类型;true
nation:"" //国家
buildingName:"" //所处建筑名称
province:"" //省
city:"" //市
district:"" //区
street:"" //街道
streetNo:"" //门号
town:"" //镇
address:"" //地址
latitude:"" //维度
Longitude:"" //经度
}
var locationSDK = api.require('TencentLocation');
locationSDK.getFootOrRidePosition(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
Android系统
可提供的1.0.0及更高版本
停止步骑行惯导
stopFootOrRidePosition()
var locationSDK = api.require('TencentLocation');
locationSDK.stopFootOrRidePosition(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
Android系统
可提供的1.0.0及更高版本
定位反作弊功能。识别和阻止模拟GPS定位结果。
notAllowAnalogGPS(callback(ret))
{
"status":"" //布尔类型;true||false
"msg":"当前位置信息存在信号模拟行为" //字符串类型;当定位信息存在模拟信号行为会返回此字段
}
var locationSDK = api.require('TencentLocation');
locationSDK.notAllowAnalogGPS(function(ret){
console.log(JSON.stringify(ret));
});
Android系统
可提供的1.0.0及更高版本
停止定位反作弊功能
allowAnalogGPS(callback(ret))
{
"msg":"定位反作弊功能已停止" //字符串类型;当反作弊功能停止运行时返回此字段
}
var locationSDK = api.require('TencentLocation');
locationSDK.allowAnalogGPS(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
Android系统
可提供的1.0.0及更高版本