关于百度地图 的缩放 比例尺
/**
* 定位SDK监听函数
*/
public 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);
if (isFirstLoc) {
isFirstLoc = false;
LatLng ll = new LatLng(location.getLatitude(),
location.getLongitude());
// 定位信息 传输进去 比例尺传输进去
MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll,
Float.parseFloat("14"));
mBaiduMap.animateMapStatus(u);
// MapStatusUpdate ms = MapStatusUpdateFactory.zoomTo(14);
// mBaiduMap.setMapStatus(ms);
title.setText(location.getCity());
}
}
public void onReceivePoi(BDLocation poiLocation) {
}
}
在刚开始进去地图时默认5公里 我改成1公里
// 移动 缩放的监听事件
OnMapStatusChangeListener listent = new OnMapStatusChangeListener() {
@Override
public void onMapStatusChangeStart(MapStatus arg0) {
Log.e("开始", "onMapStatusChangeStart");
}
@Override
public void onMapStatusChangeFinish(MapStatus map) {
Log.e("改变结束", "map" + map.zoom);
}
@Override
public void onMapStatusChange(MapStatus status) {
Log.e("改变中", "onMapStatusChange");
if (status.zoom < 14) {
try {
float zoomLevel = Float.parseFloat("14");
Log.e("s", "1" + zoomLevel);
MapStatusUpdate u = MapStatusUpdateFactory
.zoomTo(zoomLevel);
mBaiduMap.animateMapStatus(u);
} catch (NumberFormatException e) {
// Toast.makeText(this, "请输入正确的缩放级别",
// Toast.LENGTH_SHORT).show();
}
} else {
// if (!mapView.isDoubleClickZooming()) {
// mapView.setDoubleClickZooming(true);
// }
}
}
};
上面是移动 缩放地图的监听事件
我想要的效果是缩放地图不得超过1公里 超过1公里 自动弹回1公里 不超过 就是放大的效果依然保持 ok