百度地图绘制矩形区域

百度地图绘制多边形区域

 /**
     * 绘制矩形
     */
    private void drawRec() {
        double latitude=Double.parseDouble(coordinates.getLatitude());
        double longitude= Double.parseDouble(coordinates.getLongitude());
        LatLng pt1 = new LatLng(latitude + 0.02, longitude);
        LatLng pt2 = new LatLng(latitude, longitude - 0.03);
        LatLng pt4 = new LatLng(latitude - 0.02, longitude );
        LatLng pt5 = new LatLng(latitude, longitude + 0.03);
        List<LatLng> points = new ArrayList<>();
        points.add(pt1);
        points.add(pt2);
        points.add(pt4);
        points.add(pt5);
        //多边形覆盖物
        PolygonOptions polygonOptions = new PolygonOptions();
        polygonOptions.points(points);
        polygonOptions.fillColor(0xAAFFFF00);
        polygonOptions.stroke(new Stroke(2, 0xAA00FF00));
        mBaiduMap.addOverlay(polygonOptions);
    }
添加文字遮盖物
LatLng latLng = new LatLng(latitude, longitude);  
        TextOptions textOptions = new TextOptions();  
        textOptions.bgColor(0xAAFFFF00)  //設置文字覆蓋物背景顏色  
            .fontSize(28)  //设置字体大小  
            .fontColor(0xFFFF00FF)// 设置字体颜色  
            .text("我在这里啊!!!!")  //文字内容  
            .rotate(-30)  //设置文字的旋转角度  
            .position(latLng);// 设置位置  
        bdMap.addOverlay(textOptions);  
GroundOverlay(地形图图层覆盖物)
LatLng southwest = new LatLng(latitude - 0.01, longitude - 0.012);//西南  
        LatLng northeast = new LatLng(latitude + 0.01, longitude + 0.012);//东北  
        LatLngBounds bounds = new LatLngBounds.Builder().include(southwest)  
                .include(northeast).build();//得到一个地理范围对象  
        BitmapDescriptor bitmap2 = BitmapDescriptorFactory  
            .fromResource(R.drawable.csdn_blog);  
        GroundOverlayOptions groundOverlayOptions = new GroundOverlayOptions();  
        groundOverlayOptions.image(bitmap2);//显示的图片  
        groundOverlayOptions.positionFromBounds(bounds);//显示的位置  
        groundOverlayOptions.transparency(0.7f);//显示的透明度  
        bdMap.addOverlay(groundOverlayOptions);  
PolylineOptions(折线覆盖物)
CircleOptions circleOptions = new CircleOptions();  
        circleOptions.center(new LatLng(latitude, longitude));//设置圆心坐标  
        circleOptions.fillColor(0XFFfaa755);//圆的填充颜色  
        circleOptions.radius(150);//设置半径  
        circleOptions.stroke(new Stroke(5, 0xAA00FF00));//设置边框  
        bdMap.addOverlay(circleOptions);  
DotOptions(圆点覆盖物)
DotOptions dotOptions = new DotOptions();  
        dotOptions.center(new LatLng(latitude, longitude));//设置圆心坐标  
        dotOptions.color(0XFFfaa755);//颜色  
        dotOptions.radius(25);//设置半径  
        bdMap.addOverlay(dotOptions);  
CircleOptions(圆形(空心)覆盖物)
CircleOptions circleOptions = new CircleOptions();  
        circleOptions.center(new LatLng(latitude, longitude));//设置圆心坐标  
        circleOptions.fillColor(0XFFfaa755);//圆的填充颜色  
        circleOptions.radius(150);//设置半径  
        circleOptions.stroke(new Stroke(5, 0xAA00FF00));//设置边框  
        bdMap.addOverlay(circleOptions);  
ArcOptions(弧线覆盖物)
LatLng pt1 = new LatLng(latitude, longitude - 0.01);  
        LatLng pt2 = new LatLng(latitude - 0.01, longitude - 0.01);  
        LatLng pt3 = new LatLng(latitude, longitude + 0.01);  
        ArcOptions arcOptions = new ArcOptions();  
        arcOptions.points(pt1, pt2, pt3);//设置弧线的起点、中点、终点坐标  
        arcOptions.width(5);//线宽  
        arcOptions.color(0xFF000000);  
        bdMap.addOverlay(arcOptions);  
弹出窗覆盖物
/** 
     * 显示弹出窗口覆盖物 
     */  
    private void displayInfoWindow(final LatLng latLng) {  
        // 创建infowindow展示的view  
        Button btn = new Button(getApplicationContext());  
        btn.setBackgroundResource(R.drawable.popup);  
        btn.setText("点我点我~");  
        BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory  
                .fromView(btn);  
        // infowindow点击事件  
        OnInfoWindowClickListener infoWindowClickListener = new OnInfoWindowClickListener() {  
            @Override  
            public void onInfoWindowClick() {  
                reverseGeoCode(latLng);  
                //隐藏InfoWindow  
                bdMap.hideInfoWindow();  
            }  
        };  
        // 创建infowindow  
        InfoWindow infoWindow = new InfoWindow(bitmapDescriptor, latLng, -47,  
                infoWindowClickListener);  
  
        // 显示InfoWindow  
        bdMap.showInfoWindow(infoWindow);  
    }  
地理编码与反地理编码
// 创建地理编码检索实例  
        GeoCoder geoCoder = GeoCoder.newInstance();  
        //  
        OnGetGeoCoderResultListener listener = new OnGetGeoCoderResultListener() {  
            // 反地理编码查询结果回调函数  
            @Override  
            public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {  
                if (result == null  
                        || result.error != SearchResult.ERRORNO.NO_ERROR) {  
                    // 没有检测到结果  
                    Toast.makeText(MainActivity.this, "抱歉,未能找到结果",  
                            Toast.LENGTH_LONG).show();  
                }  
                Toast.makeText(MainActivity.this,  
                        "位置:" + result.getAddress(), Toast.LENGTH_LONG)  
                        .show();  
            }  
  
            // 地理编码查询结果回调函数  
            @Override  
            public void onGetGeoCodeResult(GeoCodeResult result) {  
                if (result == null  
                        || result.error != SearchResult.ERRORNO.NO_ERROR) {  
                    // 没有检测到结果  
                }  
            }  
        };  
        // 设置地理编码检索监听者  
        geoCoder.setOnGetGeoCodeResultListener(listener);  
        //  
        geoCoder.reverseGeoCode(new ReverseGeoCodeOption().location(latLng));  
        // 释放地理编码检索实例  
        // geoCoder.destroy();  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值