Cordova Geolocation Plugin,use Baidu Map SDK
npm install cordova-plugin-bmap-geolocation
__致谢: 本插件Android开发主要参考 cordova-qdc-baidu-location,感谢liangzhenghui;IOS开发主要参考cordova-plugin-bdlocation,感谢wilhantian__
__由于cordova-qdc-baidu-location明确表示没有IOS版,所以才有了重新开发一版兼容Android与IOS的想法。这样才能保证不同平台获取的坐标系是基于同一编码的,方便逻辑的统一性。__
__Android 版原作者mrwutong的话__
>#### Android版为什么不使用官方的_cordova-plugin-geolocation_插件
>最新版的插件已经删除掉的Android版定位的代码,改为基于系统浏览器(chrome内核)进行定位。
>
>为什么这样做,也有人问过同样的问题,作者的回答是这样比原生定位更快更准确。
>
>但经过测试后,发现根本无法定位,几经调查发现跟貌似国内网络有关系,原因相信大家都懂的,此过省略好几个字。。。。
>
>__此插件就这么诞生了__
#### 零,版本
基于百度地图Android版定位SDK(v7.2)以及百度地图IOS SDK (v3.2.1)
#### 一,申请Android及IOS版密钥
申请密钥Android定位SDK
>每一个AndroidManifest.xml 中的package属性 对应一个AK,不可混用
>每一个Bundle Identifier 对应一个AK,不可混用
#### 二,安装插件
``shell`
cordova plugin add https://github.com/jackxu2011/cordova-plugin-bmap-geolocation.git --variable ANDROID_KEY="此处的API_KEY_XX来自于第一步,直接替换
如果只需要Android端或者IOS端,可以只填写一个相应的AK,但是都不填肯定不行
#### 三,使用方法
`javascript
// 进行定位
bmapGeolocation.configure(function (result) {
console.log(JSON.stringify(result, null, 4));
}, function (error) {
});
bmapGeolocation.start(function(){}, function(error){});
bmapGeolocation.stop();
`
获得定位信息,返回JSON格式数据:
`javascript`
{
"time": "2017-02-25 17:30:00",//获取时间
"latitude": 34.6666666,//纬度
"longitude": 117.8888,//经度
"radius": 61.9999999,//半径
//--------Android 独享 begin
"locType": 161,//定位类型
"locTypeDescription": "NetWork location successful!",//定位类型解释
"userIndoorState": 1,//是否室内
//--------Android 独享 end
//--------IOS 独享 begin
"title": "我的位置",//定位标注点标题信息
"subtitle": "我的位置",//定位标注点子标题信息
//--------IOS 独享 end
}
具体字段内容请参照:
>Android版 BDLocation v7.2
如果Android版获取到的信息是:
`json`
{
"locType": 505,
"locTypeDescription": "NetWork location failed because baidu location service check the key is unlegal, please check the key in AndroidManifest.xml !",
"latitude": 5e-324,
"longitude": 5e-324,
"radius": 0,
"userIndoorState": -1,
"direction": -1
}
说明Key有问题,可以检查下生成的AndroidManifest.xml文件里面是否有如下信息
`xml`
如果没有,说明插件使用不当,尝试重新安装,如果有这些信息,说明Key与当前程序AndroidManifest.xml 中的package名不一致,请检查Key的申请信息是否正确
#### 四,查看当前安装了哪些插件
`shell`
cordova plugin ls
#### 五,删除本插件
`shell``
cordova plugin rm cordova-plugin-baidumaplocation