android map v2 marker onclick不会缩放

时间:2013-09-27 15:53:58

标签: android google-maps

我使用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标记单击侦听器来检测标记上的单击。方法中的吐司有效。但相机不会放大,你知道为什么吗?谢谢!

3 个答案:

答案 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));

对我来说工作得很好。