2013-09-27 43 views
4

我使用latlngbound在地图v2上显示多个标记。当我点击标记的任何一个,我希望相机放大。android map v2标记onclick不会缩放

 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; 
    } 

我使用的标记点击监听器来检测标记的点击。该方法中的祝酒有效。但相机不会放大,你知道为什么吗?谢谢!

+0

如果您从onMarkerClick返回true,该怎么办? – fasteque

+0

仍然是相同的结果。因为吐司确实有效。 –

+0

你确定15是正确的值吗?我的意思是,当你没有放大时,你使用了哪个值? – fasteque

回答

0

map.moveCamera(CameraUpdateFactory.newLatLngZoom(mMarker.getPosition(),15)));

使用此。它将工作

7

尝试:

  new Handler().postDelayed(new Runnable() { 

      @Override 
      public void run() { 
       getMap().animateCamera(CameraUpdateFactory.newLatLngZoom(mk.getPosition(), level)); 
      } 
     }, 300); 

我正在实施类似的东西在同样的问题就来了,发现API有一些问题,timming请求。这对我有效。

+0

这是解决方案。当地图标记点击以便地图移动和缩放正常工作时,它看起来像是需要延迟。还要注意,这个帖子是正确的,因为你不需要强制这个来获得Looper.getMainLooper(),因为它没有它就可以运行。 – Silmarilos

0

您需要注册你的方法在任何地方的地图是准备好了,使用:

myMap.setOnMarkerClickListener(this);

后,你可以简单地使用:

myMap.moveCamera(CameraUpdateFactory.newLatLngZoom(marker.getPosition(), 15)); 

对我来说工作得很好。

相关问题