实验目标:
根据官方文档,开发百度地图定位App,显示出当前位置坐标。
实验内容:
1.注册百度地图开发账号,并获得AK码,参考官方文档https://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/ak#threeanchor。
2.根据官方文档,进行配置,添加权限。官方文档参考https://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-map/showmap
并将AK码输入,
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="1MBgYeK9cz0TA4lcW66kK3oVlSXwhkqo" />
3.新建一个自定义的Application,在其onCreate方法中完成SDK的初始化:
public class wy extends Application {
public void onCreate() {
super.onCreate();
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
SDKInitializer.initialize(this);
//自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
//包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
SDKInitializer.setCoordType(CoordType.BD09LL);
}
}
4.新建一个MyLocationListener.类,通过继承抽象类BDAbstractListener并重写其onReceieveLocation方法来获取定位数据,并将其传给MapView:
public class MyLocationListener extends BDAbstractLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
//mapView 销毁后不在处理新接收的位置
if (location == null || mapView == null){
return;
}
MyLocationData locData = new MyLocationData.Builder()
.accuracy(location.getRadius())
// 此处设置开发者获取到的方向信息,顺时针0-360
.direction(location.getDirection()).latitude(location.getLatitude())
.longitude(location.getLongitude()).build();
mBaiduMap.setMyLocationData(locData);
}
}
5.管理MapView生命周期,并通过LocationClient发起定位:
实验结果:
?
?
实验代码:
汪寅/LBS (gitee.com)
|