Socket
Socket
Sign inDemoInstall

@hi-itech/cordova-plugin-bmaplocation

Package Overview
Dependencies
0
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @hi-itech/cordova-plugin-bmaplocation

Cordova Geolocation Plugin,use Baidu Map SDK


Version published
Maintainers
1
Created

Readme

Source

百度地图定位Cordova插件,支持Android,IOS 均可使用

UPDATE:

  • IOS增加定位权限请求

致谢: 本插件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.3.4)

一,申请Android及IOS版密钥

申请密钥Android定位SDK

每一个AndroidManifest.xml 中的package属性 对应一个AK,不可混用

iOS SDK开发密钥

每一个Bundle Identifier 对应一个AK,不可混用

二,安装插件
cordova plugin add @hi-itech/cordova-plugin-bmaplocation --variable ANDROID_KEY="<API_KEY_ANDROID>" --variable IOS_KEY="<API_KEY_IOS>"
# 此处的API_KEY_XX来自于第一步,直接替换<API_KEY_XX>,也可以最后跟 --save 参数,将插件信息保存到config.xml中
# 如果只需要Android端或者IOS端,可以只填写一个相应的AK,但是都不填肯定不行
三,使用方法
// 进行定位
bmaplocation.getCurrentPosition(function (result) {
    console.log(JSON.stringify(result, null, 4));
}, function (error) {

});

获得定位信息,返回JSON格式数据:

{
    "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 Screenshot IOS Screenshot

具体字段内容请参照:

Android版 BDLocation v7.2

IOS版 BMKUserLocation v3.3.4

如果Android版获取到的信息是:

{
    "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文件里面是否有如下信息

<service android:enabled="true" android:name="com.baidu.location.f" android:process=":remote">
</service>
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="abcdefghijklmn" />

如果没有,说明插件使用不当,尝试重新安装,如果有这些信息,说明Key与当前程序AndroidManifest.xml 中的package名不一致,请检查Key的申请信息是否正确

四,查看当前安装了哪些插件
cordova plugin ls
五,删除本插件
cordova plugin rm @hi-itech/cordova-plugin-bmaplocation --variable ANDROID_KEY="<API_KEY_ANDROID>" --variable IOS_KEY="<API_KEY_IOS>"

Keywords

FAQs

Last updated on 24 Aug 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc