1. 程式人生 > >關於百度地圖 把所有覆蓋物放在一個視野裡的問題

關於百度地圖 把所有覆蓋物放在一個視野裡的問題

現在搞的app是關於百度地圖的,因為要求要把所有覆蓋物顯示在一個視野。。。所以在網上找了很久,終於找打了方法

用的是

overlayManager.zoomToSpan();方法

程式碼如下:

先把要// 構建MarkerOption,用於在地圖上新增的Marker新增到這個集合裡

<pre name="code" class="java">List<OverlayOptions> overlayOptions = new ArrayList<OverlayOptions>();
final OverlayManager overlayManager =new OverlayManager(mBaiduMap) {
            
            @Override
            public boolean onMarkerClick(Marker marker) {
              
              //因為這裡複寫了onMarkerClick方法所以 mBaiduMap.setOnMarkerClickListener()無效了
               //要在 mBaiduMap.setOnMarkerClickListener()往這裡傳marker;把需要實現的方法寫在這裡
                return true;
            }
            
            @Override
            public List<OverlayOptions> getOverlayOptions() {
                
                return overlayOptions;//這個是必須要實現的,把要顯示的覆蓋物放在List<OverlayOptions> 

            }
        };
      
      

        overlayManager.addToMap();
        overlayManager.zoomToSpan();


點選marker事件需要加:
mBaiduMap.setOnMarkerClickListener(new OnMarkerClickListener() {

            @Override
            public boolean onMarkerClick(final Marker marker) {
                // TODO Auto-generated method stub
                overlayManager.onMarkerClick(marker);//把marker傳入就行
                
                
           
                return true;
            }
        });

注:最新的百度地圖sdk把 OverlayManager 類開源,已不再sdk裡需單獨下載放在自己專案裡