这是一个采用百度定位SDK 4.2 版的Cordova/Phonegap地理定位插件,它是在 andybuit 和 DoubleSpout 的成果的基础上所做的开发。非常感谢两位作者!
由于 DoubleSpout 的插件基于百度地图定位SDK 4.0 版,而新版本是4.2,因此本插件更新了SDK的版本,并对Java端的JS端做了相应的修改。亲测可以在cordova 4.1.2上运行。
    cordova plugin add https://github.com/darkgeek/Phonegap-BaiduGeolocation-Plugin.git- 配置您项目目录下plugins/edu.hdu.darkgeek.baidu_geolocation/plugin.xml文件,修改ak密钥为您自己的密钥值:
    <config-file target="AndroidManifest.xml" parent="/manifest/application">
        <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="您的密钥" />
    </config-file>- 接下来,您可以通过JavaScript调用getCurrentPosition方法来获取经纬度信息:
    window.BaiduGeolocation.getCurrentPosition(successCallback, errorCallback);其中,successCallback是在成功获取经纬度后触发的回调方法,该方法使用一个包含位置信息的对象作为输入参数;errorCallback是在获取失败后触发的回调方法,其参数为一个包含错误信息的对象。
    var onSuccess = function(position) {
        console.log("Get location: " + position.coords.latitude + "," + position.coords.longitude);
    };
    var onError = function(err) {
        console.error("Failed to get location: " + err.message);
    };
    window.BaiduGeolocation.getCurrentPosition(onSuccess, onError);Q: 我修改了plugin.xml,在其中添加了我的密钥值,为什么通过cordova build后,AndroidManifest.xml文件里的密钥值仍是旧的?
A: 您可以修改工程目录下plugins\android.json 文件:
            ...skip...
            "AndroidManifest.xml": {
                "parents": {
                    "/*": [
            ...skip...
                        {
                            "xml": "<uses-permission android:name=\"android.permission.READ_LOGS\" />",
                            "count": 1
                        }
                    ],
                    "/manifest/application": [
                        {
                            "xml": "<meta-data android:name=\"com.baidu.lbsapi.API_KEY\" android:value=\"keys\" />",
                            "count": 1
                        },
                        {
                            "xml": "<service android:enabled=\"true\" android:name=\"com.baidu.location.f\" android:process=\":remote\"></service>",
                            "count": 1
                        }
                    ]
                }
            }
            ...skip...修改com.baidu.lbsapi.API_KEY所对应的android:value为您的密钥值。参考 issue #2。
- 加入测试用例,确保插件的可靠性。
- 进一步将此API向W3C规定的geolocation接口靠拢。
详见使用条款。