我使用latlngbound在地图v2上显示mutli标记。当我点击其中一个标记时,我希望相机放大。
private void loadCenter(){
Builder boundsBuilder = new LatLngBounds.Builder();
for (int i=0;i<mmarker.saveMarker.size();i++)
{
boundsBuilder.include(mmarker.saveMarker.get(i));
}
LatLngBounds bounds = boundsBuilder.build();
map.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 60));
}
@Override
public boolean onMarkerClick(Marker mMarker) {
// TODO Auto-generated method stub
Toast.makeText(this, "MARKER CLICKED", Toast.LENGTH_LONG).show();
CameraUpdate zoom=CameraUpdateFactory.newLatLngZoom(mMarker.getPosition(), 15);
map.animateCamera(zoom);
return false;
}
我使用on标记单击侦听器来检测标记上的单击。方法中的吐司有效。但相机不会放大,你知道为什么吗?谢谢!
答案 0 :(得分:6)
尝试:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
getMap().animateCamera(CameraUpdateFactory.newLatLngZoom(mk.getPosition(), level));
}
}, 300);
我正在实现类似的东西并遇到了同样的问题,并注意到api在调整请求方面存在一些问题。这对我有用。
答案 1 :(得分:0)
map.moveCamera(CameraUpdateFactory.newLatLngZoom(mMarker.getPosition(), 15)));
使用它。它会起作用。
答案 2 :(得分:0)
您需要在地图准备就绪的任何地方注册您的方法,使用:
myMap.setOnMarkerClickListener(this);
之后你可以简单地使用:
myMap.moveCamera(CameraUpdateFactory.newLatLngZoom(marker.getPosition(), 15));
对我来说工作得很好。