美文网首页Android知识安卓资源收集
Android百度地图——覆盖物

Android百度地图——覆盖物

作者: 王家宇 | 来源:发表于2016-06-02 11:23 被阅读1563次

    在配置好百度地图的使用权限和key值之后,绘制地图覆盖物步骤:
    1、初始化地图

    
        /**初始化百度地图
         * 
         */
        private void initBaiduMap(){
            //初始化地图
            mMapView = (MapView) findViewById(R.id.map);
            
            mMapView.showZoomControls(false);//缩放按钮
        
            mBaidumap = mMapView.getMap();
            //地图点击事件处理
            mBaidumap.setOnMapClickListener(this);
            // 初始化搜索模块,注册事件监听
            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、覆盖物事件监听
    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;
                }
            });
    

    相关文章

      网友评论

        本文标题:Android百度地图——覆盖物

        本文链接:https://www.haomeiwen.com/subject/fdqkdttx.html