2013-09-27 44 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)); 

對我來說工作得很好。

相關問題