Android百度地圖——覆蓋物

在配置好百度地圖的使用權限和key值之后,繪制地圖覆蓋物步驟:
1、初始化地圖


    /**初始化百度地圖
     * 
     */
    private void initBaiduMap(){
        //初始化地圖
        mMapView = (MapView) findViewById(R.id.map);
        
        mMapView.showZoomControls(false);//縮放按鈕
    
        mBaidumap = mMapView.getMap();
        //地圖點擊事件處理
        mBaidumap.setOnMapClickListener(this);
        // 初始化搜索模塊,注冊事件監(jiān)聽
        mSearch = RoutePlanSearch.newInstance();
        mSearch.setOnGetRoutePlanResultListener(this);
//        mBaidumap.setOnMapLoadedCallback(new OnMapLoadedCallback() {
//          //地圖加載完成回調,該方法有時沒有返回,原因不明,還在研究,讀者有經驗可以交流一下
//          @Override
//          public void onMapLoaded() {
//              // TODO Auto-generated method stub
//              ToastUtils.showTextToast(SelectStationActivity.this, "地圖加載完成");
//              
//          }
//      });
    }

2、添加覆蓋物

BitmapDescriptor bdC = BitmapDescriptorFactory.fromView(view);
/*
此處BitmapDescriptorFactory.fromView(view);采用的是自定義覆蓋物
view = View.inflate(getApplicationContext(), R.layout.view_baidumap, null);
也可以使用BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher)
BitmapDescriptorFactory.fromBitmap(bitmap)
*/
            LatLng ll = new LatLng(stations.get(i).getLatitude(), stations.get(i).getLongitude());
            MarkerOptions ooC = null;
            if (overlayIconCenter) {//true 居中對齊
                ooC = new MarkerOptions().position(ll)//經緯度
                                      .icon(bdC)//覆蓋物的icon,可以選擇icons(ArrayList<BitmapDescriptor>)多個icon實現輪播動畫效果
                                      .perspective(false)
                                     .anchor(0.5f, 1f)//覆蓋物的對齊點,0.5f,0.5f為覆蓋物的中心點
                                     .zIndex(i);
            }else{//左對齊
                ooC = new MarkerOptions().position(ll).icon(bdC)
                    .perspective(false).anchor(0f, 1f).zIndex(i);
            }
                    
            if (animation) {   
                //生長動畫
                ooC.animateType(MarkerAnimateType.grow);//還可以選擇掉落的動畫
            }
            mBaidumap.addOverlay(ooC);
                        /*此處可以強轉(Marker) (mBaidumap.addOverlay(ooD));
                            通過Marker.setPosition(LatLng)控制覆蓋物的位置
*/

3、覆蓋物事件監(jiān)聽
mBaidumap.setOnMapStatusChangeListener(arg0);
mBaidumap.setOnMapDoubleClickListener(arg0);
mBaidumap.setOnMapTouchListener(arg0);
mBaidumap.setOnMapLongClickListener(arg0);
mBaidumap.setOnMarkerClickListener((arg0);

Baidumap.setOnMarkerClickListener(new OnMarkerClickListener() {
            
            @Override
            public boolean onMarkerClick(Marker arg0) {
                // TODO Auto-generated method stub
                //可以通過arg0.getZIndex()判斷Marker
            
                return true;
            }
        });
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 在第二篇文章的時候我曾經說過,還會有一篇添加覆蓋物的講解,這一篇就是專門寫覆蓋物的。百度地圖SDK的覆蓋物乍一看沒...
    貓兒不吃魚魚閱讀 5,678評論 3 9
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,056評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • 【 申請密鑰AndroidSDK:應用程序包名+數字簽名 As查看數字簽名:cmd-----cd .android...
    征程_Journey閱讀 2,471評論 0 5
  • 一個基督徒問牧師說:“上帝為什么不讓亞當和夏娃吃智慧果呢?人擁有智慧,不是很好嗎?”牧師說:“凡事都有兩面性,智慧...
    海王星1984閱讀 625評論 0 1

友情鏈接更多精彩內容