百度地图绘制矩形区域
2017-04-24 10:38
375 查看
百度地图绘制多边形区域 /** * 绘制矩形 */ 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();
相关文章推荐
- php百度地图坐标绘制矩形 调用百度poi搜索矩形区域内数据
- Android摄像头:只拍摄SurfaceView预览界面特定区域内容(矩形框)---完整实现(原理:底层SurfaceView+上层绘制ImageView)
- opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
- 百度地图 鼠标绘制,获取矩形,多边形的顶点经纬度
- 用CRectTracker绘制一个矩形区域,并且可以移动该矩形
- opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
- 百度地图绘制地图区域,并返回坐标
- Android摄像头:只拍摄SurfaceView预览界面特定区域内容(矩形框)---完整实现(原理:底层SurfaceView+上层绘制ImageView)
- Android开发:SurfaceView上新建线程绘制旋转图片 及 刷新特定区域(脏矩形)
- 绘制 矩形区域(做调试信息等)
- opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
- 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- 2.9 opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
- [good]opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
- opencv-- 使用鼠标绘制矩形并截取和保存矩形区域图像
- opencv 绘制矩形,提取矩形区域的直方图
- 利用鼠标绘制矩形和截取图像的矩形区域并保存(OpenCV2.4.5)
- OpenCV学习笔记(18):在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像