百度地圖在自動定位時,出現的比例尺大小是默認的5公裡。但這個范圍太大,不能滿足應用需求,需要在定位時指定比例尺大小。通過摸索和查詢,終於找到了解決方法。
就是要在定位監聽中加入以下代碼,
float f = mBaiduMap.getMaxZoomLevel();//19.0 最小比例尺
// float m = mBaiduMap.getMinZoomLevel();//3.0 最大比例尺
MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, f-2);//設置到100米的大小
整體的代碼:
/**
* 定位SDK監聽函數
*/
protected class MyLocationListenner implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
// map view 銷毀後不在處理新接收的位置
if (location == null || mMapView == null)
return;
MyLocationData locData = new MyLocationData.Builder()
.accuracy(location.getRadius())// 此處設置開發者獲取到的方向信息,順時針0-360
.direction(100).latitude(location.getLatitude())
.longitude(location.getLongitude()).build();
mBaiduMap.setMyLocationData(locData);
LatLng ll = new LatLng(location.getLatitude(),
location.getLongitude());
float f = mBaiduMap.getMaxZoomLevel();//19.0
// float m = mBaiduMap.getMinZoomLevel();//3.0
MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, f-2);
mBaiduMap.animateMapStatus(u);
}
public void onReceivePoi(BDLocation poiLocation) {
}
}