前言
在项目中根据百度地图官方文档实现了对百度地图的调用及定位功能。
项目源码
项目流程
- 根据百度地图开放平台,获取开发密钥(AK),并在
AndroidManifest.xml
文件中进行相关配置。在获取项目SHA1码时,可直接利用gradle获取:点击AS右侧的Gradle→ app→ Taks→andriod→双击signing Report即可获取SHA1码。 - 显示地图
根据官方文档对地图进行一些显示设置。 - 显示定位
显示定位之前,要下载相应的定位sdk,且要选择第一排的任一定位功能。
项目部分代码
获取位置
public class MyLocationListener extends BDAbstractLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
//mapView 销毁后不在处理新接收的位置
if (location == null || mMapView == null){
return;
}
MyLocationData locData = new MyLocationData.Builder()
.accuracy(location.getRadius())
// 此处设置开发者获取到的方向信息,顺时针0-360
.latitude(location.getLatitude())
.longitude(location.getLongitude())
.direction(location.getDirection()).build();
mBaiduMap.setMyLocationData(locData);
MyLocationConfiguration configuration = new MyLocationConfiguration(
MyLocationConfiguration.LocationMode.NORMAL, false, mMarker);
tv_Lat.setText(location.getLatitude() + "");
tv_Lon.setText(location.getLongitude() + "");
tv_Add.setText(location.getAddrStr());
mBaiduMap.setMyLocationConfiguration(configuration);
if (ifFrist) {
LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());
MapStatus.Builder builder = new MapStatus.Builder();
builder.target(ll);
builder.zoom(18.0f);
mBaiduMap.setMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
//放大层级
ifFrist = false;
}
}
}
项目心得
关于调用百度地图,官方文档给出了详尽的代码。但是由于在虚拟机上运行,且没有联网,故定位为默认定位(谷歌总部)。