浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

Android 定位SDK

开发者在自己的Android移动应用中集成定位SDK,可轻松实现获取当前位置信息的功能。获取当前位置信息,即我们常说的定位。其中位置信息主要包括经纬度、地址、位置描述、周边POI等

百度地图Android定位SDK自v7.3版本起,面向广大开发者提供了辅助H5定位的能力。

辅助H5定位指的是开发者在自己的App中使用百度地图JavaScript API实现Web页面开发时,可调用集成在App中的百度地图定位SDK来获取更精准的位置信息。

1第一步,准备工作
在使用定位SDK进行具体开发工作之前,需获取开发密钥(AK),并对开发工程进行环境配置工作。详细介绍请参考项目创建部分的说明。 此外,Google在Android 6.0中引入了动态权限获取机制,开发者在使用定位SDK之前,请详细了解关于Android 6.0系统开发须知。
2第二步,初始化LocationClient类
请在主线程中声明LocationClient类对象,该对象初始化需传入Context类型参数。推荐使用getApplicationConext()方法获取全进程有效的Context。

核心代码段如下:

public LocationClient mLocationClient = null;
private MyLocationListener myListener = new MyLocationListener();
//BDAbstractLocationListener为7.2版本新增的Abstract类型的监听接口
//原有BDLocationListener接口暂时同步保留。具体介绍请参考后文中的说明
public void onCreate() {
    mLocationClient = new LocationClient(getApplicationContext());     
    //声明LocationClient类
    mLocationClient.registerLocationListener(myListener);    
    //注册监听函数
}
3第三步,开启辅助定位
调用如下方法,开启辅助H5定位:
mLocationClient.enableAssistantLocation();

同时,在H5页面中使用定位接口,并开启辅助定位。

JavaScript API端代码参考如下:

var map = new BMap.Map("allmap");
    var point = new BMap.Point(116.331398, 39.897445);
    map.centerAndZoom(point, 12);
    var geolocation = new BMap.Geolocation();
    // 开启辅助定位
    geolocation.enableSDKLocation();
    geolocation.getCurrentPosition(function(r){
        if (this.getStatus() === BMAP_STATUS_SUCCESS) {
            var mk = new BMap.Marker(r.point);
            map.addOverlay(mk);
            map.panTo(r.point);
        }      
    });
4第四步,获取位置信息
5第五步,关闭辅助定位
完成辅助H5定位功能之后,可调用如下代码关闭SDK端辅助H5定位功能。
mLocationClient.disableAssistantLocation();

更多详细用法,请参考官方Demo。