上一篇博客介绍了集成百度地图的详细步骤,这篇就记录一下百度地图的一些基本的设置,如果不知道怎么集成的请查看上一篇博客集成的详细步骤
地图类型:
mMapView.setLogoPosition(LogoPosition.logoPostionleftTop);//设置百度地图logo位置
mMapView.showZoomControls(false);//是否显示缩放控件
mBaiduMap = mMapView.getMap();
//普通地图
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);//地图类型
百度地图SDK提供了3种预置的地图类型(普通矢量地图、卫星图和空白地图),BaiduMap 类提供图层类型常量,如下:MAP_TYPE_NORMAL 普通地图(包含3D地图),MAP_TYPE_SATELLITE 卫星图,MAP_TYPE_NONE
空白地图;另外提供了2种常用图层实时路况图以及百度城市热力图。
交通图:
mMapView = (MapView) findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();
//开启交通图
mBaiduMap.setTrafficEnabled(true);
热力图:
mMapView = (MapView) findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();
//开启热力图
mBaiduMap.setBaiduHeatMapEnabled(true);
当地图从20级放大到21级后,卫星图、热力图、交通路况图层将不再显示;缩小到20级后,卫星图、热力图、交通路况图层,会再正常显示。
定位:
/**
* 初始化定位
*/
private void initLocation(){
// 开启定位图层
mBaiduMap.setMyLocationEnabled(true);
myListener = new MyLocationListener();
mLocationClient = new LocationClient(HistoryActivity.this);
mLocationClient.registerLocationListener(myListener);
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true); // 打开gps
option.setCoorType("bd09ll"); // 设置坐标类型
option.setScanSpan(30000);//取定位的时间间隔
mLocationClient.setLocOption(option);
mLocationClient.start();
}
定
位监听
public class MyLocationListener implements BDLocationListener {
@Override
public void onReceiveLocation(final BDLocation location) {
//获取定位结果
// map view 销毁后不在处理新接收的位置
if (location == null || mMapView == null) {
return;
}
mCurrentLat = location.getLatitude();
mCurrentLon = location.getLongitude();
mCurrentAccracy = location.getRadius();
locData = new MyLocationData.Builder()
.accuracy(location.getRadius())
// 此处设置开发者获取到的方向信息,顺时针0-360
.direction(mCurrentDirection).latitude(location.getLatitude())
.longitude(location.getLongitude()).build();
mBaiduMap.setMyLocationData(locData);
// 设置定位图层的配置(定位模式,是否允许方向信息,用户自定义定位图标)
mCurrentMarker = BitmapDescriptorFactory.fromResource(R.drawable.icon_geo);
MyLocationConfiguration config = new MyLocationConfiguration(mCurrentMode, true, mCurrentMarker);
mBaiduMap.setMyLocationConfiguration();
LatLng ll = new LatLng(location.getLatitude(),//中心点的经纬度
location.getLongitude());
MapStatus.Builder builder = new MapStatus.Builder();
builder.target(ll).zoom(12.0f);//设置中心的和缩放级别
mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
}
@Override
public void onConnectHotSpotMessage(String s, int i) {
}
}
定位模式
地图SDK支持三种定位模式:NORMAL(普通态), FOLLOWING(跟随态), COMPASS(罗盘态)
mCurrentMode = LocationMode.FOLLOWING;//定位跟随态
mCurrentMode = LocationMode.NORMAL; //默认为 LocationMode.NORMAL 普通态
mCurrentMode = LocationMode.COMPASS; //定位罗盘态
自定义定位图标
支持自定义定位图标样式,替换定位icon
mCurrentMarker = BitmapDescriptorFactory .fromResource(R.drawable.icon_geo);
自定义精度圈填充颜色
accuracyCircleFillColor = 0xAAFFFF88;//自定义精度圈填充颜色
自定义精度圈边框颜色
accuracyCircleStrokeColor = 0xAA00FF00;//自定义精度圈边框颜色