百度地图常用的api:
1、mapView.removeViewAt(2);//移除缩放控件
2、定位到我的位置:
private void centerToMyLocation() {
LatLng latLng = new LatLng(34.242652, 108.971171);
MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);
baiduMap.animateMapStatus(msu);
}
3、百度地图的三种地图:
普通地图:baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
卫星地图:baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
实时交通:baiduMap.setTrafficEnabled(true);
4、百度地图切换的三种模式:
普通模式:MyLocationConfiguration.LocationMode.NORMAL
跟随模式:MyLocationConfiguration.LocationMode.FOLLOWING
罗盘模式:MyLocationConfiguration.LocationMode.COMPASS
在MyBDLocationListener类的onReceiveLocation(BDLocation location);方法里配置:
MyLocationConfiguration configuration = new MyLocationConfiguration(
MyLocationConfiguration.LocationMode.NORMAL, true, mIconLocation);
baiduMap.setMyLocationConfiguration(configuration);
4、绘制轨迹
public void canvasTracks(List<Info> infoList){
List<LatLng> latLngList = new ArrayList<LatLng>();
for (Info info : infoList) {
// 经纬度
LatLng latLng=new LatLng(info.getLatitude(),info.getLongitude());
latLngList.add(latLng);
}
//描线
OverlayOptions options = new PolylineOptions().width(20)
.color(Color.parseColor("#3AB0FC")).points(latLngList);
baiduMap.addOverlay(options);
// 把地图移动到第一个maker的地址
MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLngList.get(0));
baiduMap.setMapStatus(msu);
}
5、经纬度转换为具体地址
public void latLntToAddress() {
GeoCoder mSearch = GeoCoder.newInstance();
mSearch.setOnGetGeoCodeResultListener(resultListener);
mSearch.reverseGeoCode(new ReverseGeoCodeOption()
.location(new LatLng(34.242652, 108.971171)));
}
OnGetGeoCoderResultListener resultListener = new OnGetGeoCoderResultListener() {
//地理编码查询结果回调函数
@Override
public void onGetGeoCodeResult(GeoCodeResult result) {
if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
//没有检索到结果
Toast.makeText(context, "没有找到检索结果", Toast.LENGTH_SHORT).show();
}
//获取地理编码结果
Toast.makeText(context, "" + result.toString(), Toast.LENGTH_SHORT).show();
}
//反地理编码查询结果回调函数
@Override
public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {
if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
//没有找到检索结果
Toast.makeText(context, "没有找到检索结果", Toast.LENGTH_SHORT).show();
} else {
//获取反向地理编码结果
Toast.makeText(context, "" + result.getAddress(), Toast.LENGTH_SHORT).show();
}
}
};