關於百度地圖 把所有覆蓋物放在一個視野裡的問題
阿新 • • 發佈:2019-01-27
現在搞的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裡需單獨下載放在自己專案裡