Baidu 定位 SDK 版本:6.2.3
Cordova 版本:5.0.0
Cordova 百度定位插件,兼容 W3C 的 geolocation 标准,解决**大陆手机无法定位的问题。
在控制台里,进入 cordova 项目目录,执行以下命令:
$ cordova plugin add https://github.com/ETENG-OSP/cordova-plugin-baidu-geolocation.git --variable API_KEY=百度分配的AK --save
如果需要同时在 iOS 里和 Android 里使用,请在 config.xml
里分别配置:
...
<!-- android 使用本插件 -->
<platform name="android">
<plugin name="cordova-plugin-baidu-geolocation" spec="https://github.com/ETENG-OSP/cordova-plugin-baidu-geolocation">
<variable name="API_KEY" value="百度分配的AK" />
</plugin>
</platform>
<!-- iOS 使用官方插件 -->
<platform name="ios">
<plugin name="cordova-plugin-geolocation" spec="~1.0.0" />
</platform>
...
使用前需要在百度申请应用,获取 API_KEY。填错了的话仅能使用 GPS 定位,无法使用基站与 WIFI 定位。
获取当前位置
var options = {
enableHighAccuracy: true, // 是否使用 GPS
maximumAge: 30000, // 缓存时间
timeout: 27000, // 超时时间
coorType: 'bd09ll' // 默认是 gcj02,可填 bd09ll 以获取百度经纬度用于访问百度 API
}
succes 原型:
function success(position, extra) {
}
position 定义:
{
"coords": {
"latitude": "number",
"longitude": "number",
"altitude": "number",
"accuracy": "number",
"altitudeAccuracy": "number",
"heading": "string",
"speed": "number"
},
"timestamp": "number"
}
extra 定义:
{
"type": "string"
}
持续追踪位置变更
返回值:watchId
清除位置追踪
由于 Baidu 定位的限制,这个插件仅能获取**偏移坐标系 GCJ02 与 BD09LL(LL 指代经纬度)。如果需要坐标系的转换,请使用第三方服务。
如果期望离线转换坐标系,可以使用这个算法: https://github.com/googollee/eviltransform
这个插件不对转换的结果负责