npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@hi-itech/cordova-plugin-bmaplocation

v1.0.6

Published

Cordova Geolocation Plugin,use Baidu Map SDK

Downloads

9

Readme

百度地图定位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>"