Android百度地图开发图形覆盖物和基本操作

环境配置地址(AndroidStudio):https://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/androidstudio

环境配置地址(Eclipse):https://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/eclipse

示例代码:

***.xml:

 <com.baidu.mapapi.map.MapView
        android:id="@+id/bmapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clickable="true" />

***.java:

        mMapView = findViewById(R.id.bmapView);
        // 隐藏比例尺、缩放图
        //mMapView.showScaleControl(false);// 隐藏缩放图,默认显示
        //mMapView.showZoomControls(false);// 隐藏比例尺,默认显示
        // 获取地图控制器
        baiduMap = mMapView.getMap();

        //设置地图模式为空
        //baiduMap.setMapType(BaiduMap.MAP_TYPE_NONE);
        //设置地图模式为电子地图
        //baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
        //设置地图模式为卫星地图
        //baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
        //开启交通图   
        //baiduMap.setTrafficEnabled(true);
        //开启热力图
        //baiduMap.setBaiduHeatMapEnabled(true);


        // 设置地图中心点
        MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newLatLng(ccPos);
        baiduMap.setMapStatus(mapStatusUpdate);

        // 设置缩放为15
       // mapStatusUpdate = MapStatusUpdateFactory.zoomTo(15);
       // baiduMap.setMapStatus(mapStatusUpdate);

圆形覆盖物

         CircleOptions options = new CircleOptions();// 创建一个圆形覆盖物
         options.center(ccPos);// 圆心
         options.radius(1000);// 半径
         options.stroke(new Stroke(20,0x55FF0000));// 线条宽度、颜色
         options.fillColor(0x5500FF00);// 圆的填充颜色

         baiduMap.addOverlay(options);//添加一个覆盖物

样例: 

文本覆盖物

        TextOptions options = new TextOptions();// 创建一个文本覆盖物
        options.position(ccPos);// 位置
        options.text("测试百度地图");// 文本内容
        options.fontSize(20);// 文字大小
        options.fontColor(0x55ff0000);// 文字颜色
        options.bgColor(0x5500ff00);// 背景颜色
        options.rotate(30);// 旋转

        baiduMap.addOverlay(options);//添加一个覆盖物

样例:

标志覆盖物

        MarkerOptions options = new MarkerOptions();// 创建一个标志覆盖物
        BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.mipmap.android);// 
        获取资源图片
        options.position(ccPos);//位置
        options.title("标志");// title
        options.icon(icon);// 图标
        options.draggable(true);// 是否可以拖动

        baiduMap.addOverlay(options);//添加一个覆盖物
        baiduMap.setOnMarkerClickListener(markerClickListener);// 添加标志覆盖物点击事件
        baiduMap.setOnMarkerDragListener(markerDragListener);// 添加标志覆盖物拖到事件

标志位点击事件和拖动事件

  /**
     * 标志点击事件
     * */
    BaiduMap.OnMarkerClickListener markerClickListener = new BaiduMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker marker) {

            myToast("标志覆盖物点击事件");

            return true;
        }
    };

    /**
     * 标志拖动事件
     * */
    BaiduMap.OnMarkerDragListener markerDragListener = new BaiduMap.OnMarkerDragListener() {
        @Override
        public void onMarkerDrag(Marker marker) {
            myToast("标志覆盖物拖动中");
        }

        @Override
        public void onMarkerDragEnd(Marker marker) {
            myToast("标志覆盖物结束拖动");
        }

        @Override
        public void onMarkerDragStart(Marker marker) {
            myToast("标志覆盖物开始拖动");
        }
    };

样例:

标志覆盖物点击弹出气泡视图

***.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimary">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="标识PopView"/>

</LinearLayout>

java代码:

    /**
     * 标志点击事件
     * */
    BaiduMap.OnMarkerClickListener markerClickListener = new BaiduMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker marker) {
            LatLng position = marker.getPosition();
            // 显示一个气泡视图
           if (pop == null){
               pop = View.inflate(BaseActivity.this,R.layout.mark_layout,null);
               MapViewLayoutParams.Builder builder = new MapViewLayoutParams.Builder();
               builder.layoutMode(MapViewLayoutParams.ELayoutMode.mapMode);// 指定坐标类型为经纬度
               builder.position(position);// 设置标志的位置
               MapViewLayoutParams params = builder.build();
               mMapView.addView(pop,params);
           }else {
               MapViewLayoutParams.Builder builder = new MapViewLayoutParams.Builder();
               builder.layoutMode(MapViewLayoutParams.ELayoutMode.mapMode);// 指定坐标类型为经纬度
               builder.position(position);// 设置标志的位置
               MapViewLayoutParams params = builder.build();
               mMapView.addView(pop,params);
           }
           
            return true;
        }
    };

样例:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值