首先介绍一个类:GraphicsOverlay

这是一个在地图上绘制图形的overlay。GraphicsOverlay通过调用setData(Graphic g) 完成图形绘制。

Graphic 通过构造方法Graphic(Geometry g, Symbol s) 获得。Geometry 是几何图形,而Symbol是几何图形的样式,

设置线的样式:setLineSymbol(Symbol.Color color, int width)

设置点的样式:setPointSymbol(Symbol.Color color)

设置面的样式:setSurface(Symbol.Color color, int status, int linewidth)

Geometry 就是一个几何图形,

绘制圆:setCircle(GeoPoint geoPoint, int radius)

绘制矩形:setEnvelope(GeoPoint geoPoint1, GeoPoint geoPoint2)

绘制点:setPoint(GeoPoint geoPoint, int pixel)

绘制多边形:setPolygon(GeoPoint[] geoPoints)

绘制线:setPolyLine(GeoPoint[] geoPoints)

2.1.2还新增了Textoverlay,可以在地图上添加文字。

TextOverlay textOverlay = new TextOverlay(mMapView);mMapView.getOverlays().add(textOverlay);textOverlay.addText(drawText()); //drawText()返回的是TextItem 类

具体来看看代码怎么写:

绘制线:

/*** 绘制折线,该折线状态随地图状态变化* @return 折线对象*/public Graphic drawLine(){double mLat = 39.97923;double mLon = 116.357428;int lat = (int) (mLat*1E6);int lon = (int) (mLon*1E6);       GeoPoint pt1 = new GeoPoint(lat, lon);mLat = 39.94923;mLon = 116.397428;lat = (int) (mLat*1E6);lon = (int) (mLon*1E6);GeoPoint pt2 = new GeoPoint(lat, lon);mLat = 39.97923;mLon = 116.437428;lat = (int) (mLat*1E6);lon = (int) (mLon*1E6);GeoPoint pt3 = new GeoPoint(lat, lon);//构建线Geometry lineGeometry = new Geometry();//设定折线点坐标GeoPoint[] linePoints = new GeoPoint[3];linePoints[0] = pt1;linePoints[1] = pt2;linePoints[2] = pt3; lineGeometry.setPolyLine(linePoints);//设定样式Symbol lineSymbol = new Symbol();Symbol.Color lineColor = lineSymbol.new Color();lineColor.red = 255;lineColor.green = 0;lineColor.blue = 0;lineColor.alpha = 255;lineSymbol.setLineSymbol(lineColor, 10);//生成Graphic对象Graphic lineGraphic = new Graphic(lineGeometry, lineSymbol);return lineGraphic;}

绘制多边形:

 /*** 绘制多边形,该多边形随地图状态变化* @return 多边形对象*/public Graphic drawPolygon(){double mLat = 39.93923;double mLon = 116.357428;int lat = (int) (mLat*1E6);int lon = (int) (mLon*1E6);      GeoPoint pt1 = new GeoPoint(lat, lon);mLat = 39.91923;mLon = 116.327428;lat = (int) (mLat*1E6);lon = (int) (mLon*1E6);GeoPoint pt2 = new GeoPoint(lat, lon);mLat = 39.89923;mLon = 116.347428;lat = (int) (mLat*1E6);lon = (int) (mLon*1E6);GeoPoint pt3 = new GeoPoint(lat, lon);mLat = 39.89923;mLon = 116.367428;lat = (int) (mLat*1E6);lon = (int) (mLon*1E6);GeoPoint pt4 = new GeoPoint(lat, lon);mLat = 39.91923;mLon = 116.387428;lat = (int) (mLat*1E6);lon = (int) (mLon*1E6);GeoPoint pt5 = new GeoPoint(lat, lon);//构建多边形Geometry polygonGeometry = new Geometry();//设置多边形坐标GeoPoint[] polygonPoints = new GeoPoint[5];polygonPoints[0] = pt1;polygonPoints[1] = pt2;polygonPoints[2] = pt3; polygonPoints[3] = pt4; polygonPoints[4] = pt5; polygonGeometry.setPolygon(polygonPoints);//设置多边形样式Symbol polygonSymbol = new Symbol();Symbol.Color polygonColor = polygonSymbol.new Color();polygonColor.red = 0;polygonColor.green = 0;polygonColor.blue = 255;polygonColor.alpha = 126;polygonSymbol.setSurface(polygonColor,1,5);//生成Graphic对象Graphic polygonGraphic = new Graphic(polygonGeometry, polygonSymbol);return polygonGraphic;}

绘制点:

 /*** 绘制单点,该点状态不随地图状态变化而变化* @return 点对象*/public Graphic drawPoint(){double mLat = 39.98923;double mLon = 116.397428;int lat = (int) (mLat*1E6);int lon = (int) (mLon*1E6);       GeoPoint pt1 = new GeoPoint(lat, lon);//构建点Geometry pointGeometry = new Geometry();//设置坐标pointGeometry.setPoint(pt1, 10);//设定样式Symbol pointSymbol = new Symbol();Symbol.Color pointColor = pointSymbol.new Color();pointColor.red = 0;pointColor.green = 126;pointColor.blue = 255;pointColor.alpha = 255;pointSymbol.setPointSymbol(pointColor);//生成Graphic对象Graphic pointGraphic = new Graphic(pointGeometry, pointSymbol);return pointGraphic;}

绘制圆:

 /*** 绘制圆,该圆随地图状态变化* @return 圆对象*/public Graphic drawCircle() {double mLat = 39.90923; double mLon = 116.447428; int lat = (int) (mLat*1E6);int lon = (int) (mLon*1E6);      GeoPoint pt1 = new GeoPoint(lat, lon);//构建圆Geometry circleGeometry = new Geometry();//设置圆中心点坐标和半径circleGeometry.setCircle(pt1, 2500);//设置样式Symbol circleSymbol = new Symbol();Symbol.Color circleColor = circleSymbol.new Color();circleColor.red = 0;circleColor.green = 255;circleColor.blue = 0;circleColor.alpha = 126;circleSymbol.setSurface(circleColor,1,3);//生成Graphic对象Graphic circleGraphic = new Graphic(circleGeometry, circleSymbol);return circleGraphic;}

绘制文字

/*** 绘制文字,该文字随地图变化有透视效果* @return 文字对象*/public TextItem drawText(){double mLat = 39.86923;double mLon = 116.397428;int lat = (int) (mLat*1E6);int lon = (int) (mLon*1E6);     //构建文字TextItem item = new TextItem();//设置文字位置item.pt = new GeoPoint(lat,lon);//设置文件内容item.text = "百度地图SDK";//设文字大小item.fontSize = 40;Symbol symbol = new Symbol();Symbol.Color bgColor = symbol.new Color();//设置文字背景色bgColor.red = 0;bgColor.blue = 0;bgColor.green = 255;bgColor.alpha = 50;Symbol.Color fontColor = symbol.new Color();//设置文字着色fontColor.alpha = 255;fontColor.red = 0;fontColor.green = 0;fontColor.blue  = 255;//设置对齐方式item.align = TextItem.ALIGN_CENTER;//设置文字颜色和背景颜色item.fontColor = fontColor;item.bgColor  = bgColor ; return item;}

添加到图层,显示在地图上:

GraphicsOverlay graphicsOverlay = new GraphicsOverlay(mMapView);mMapView.getOverlays().add(graphicsOverlay);//添加点graphicsOverlay.setData(drawPoint());//添加折线graphicsOverlay.setData(drawLine());//添加多边形graphicsOverlay.setData(drawPolygon());//添加圆graphicsOverlay.setData(drawCircle());//绘制文字TextOverlay textOverlay = new TextOverlay(mMapView);mMapView.getOverlays().add(textOverlay);textOverlay.addText(drawText());//执行地图刷新使生效mMapView.refresh();

清除所有图层:

mMapView.getOverlays().clear();

android百度地图:在地图上绘制点、线、多边形、圆形和文字相关推荐

  1. opencv 绘制轮廓边框 多边形 圆形 矩形

    如何使用opencv 绘制轮廓边框最小包裹 多边形 圆形 矩形? 函数说明: Rect boundingRect(InputArray points) points:输入信息,可以为包含点的容器(ve ...

  2. Android百度地图雷达效果,地图导航实测:百度地图路线雷达圈粉“老司机”

    原标题:地图导航实测:百度地图路线雷达圈粉"老司机" 前段时间,百度和高德就谁是第一的问题引发了一场争论,而作为驾龄近10年的老司机,我并不关心两家输赢,只想说说哪个导航更好用.更 ...

  3. 百度地图在html上自定义画线,以百度地图为底图如何在上面画线?

    做了以百度地图为底图的. 尝试以leatlet api提供的接口画线上去 然后提示 以为是因为百度地图不支持的原因,改成超图云地图还是一样.是不支持直接用原生的吗? 画线代码: var latlngs ...

  4. android 编辑画线,如何在android中用手指在imageview上绘制线条

    您应该覆盖视图的onDraw方法. screen_drawing_room.xml android:id="@+id/rlid" android:layout_width=&quo ...

  5. android地图画线,绘制折线-在地图上绘制-开发指南-Android 轻量版地图SDK | 高德地图API...

    地图上绘制的线是由 Polyline 类定义实现的,线由一组经纬度(LatLng对象)点连接而成. 绘制一条线 与点标记一样,Polyine的属性操作集中在PolylineOptions类中,添加一条 ...

  6. 【OpenCV 4开发详解】图像上绘制几何图形

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  7. python画箭头opencv_OpenCV绘制箭头线

    OpenCV绘制箭头线 可以使用imgproc类的arrowedLine()方法在图像上绘制箭头线. 以下是这种方法的语法 - arrowedLine(Mat img, Point pt1, Poin ...

  8. android百度地图轨迹实现,android 获取GPS经纬度在百度地图上绘制轨迹

    实现将一组GPS模块获取的经纬度数据在百度地图上绘制轨迹 1.将经纬度转换成百度地图坐标 /** * 标准的GPS经纬度坐标直接在地图上绘制会有偏移,这是测绘局和地图商设置的加密,要转换成百度地图坐标 ...

  9. android百度地图api两点画线,android百度地图:在地图上绘制点、线、多边形、圆形和文字...

    转载自:http://blog.csdn.net/rt77777/article/details/9186691 首先介绍一个类:GraphicsOverlay 这是一个在地图上绘制图形的overla ...

  10. Android百度地图绘制多边形,android百度地图:在地图上绘制点、线、多边形、圆形和文字...

    首先介绍一个类:GraphicsOverlay 这是一个在地图上绘制图形的overlay.GraphicsOverlay通过调用setData(Graphic g) 完成图形绘制. Graphic 通 ...

最新文章

  1. 为什么不推荐使用汉字作为密码?
  2. stl 基于哈希的map c++_【C++】一文带你入门 STL
  3. 响应面法求可靠度指标代码_基于可靠度理论的既有桥梁结构承载能力评估——结构可靠度理论若干基本概念...
  4. 深度学习福利入门到精通第三讲——VGGNet模型
  5. Maven中的dependencyManagement 详解
  6. 软件工程 | 第七章 系统维护
  7. 网络拓扑图js插件——jTopo应用
  8. 排序算法问题:稳定排序与不稳定排序
  9. 个人免签监测APP源码 短信微信支付宝 实时捕获回调收款通知!
  10. The Rust Programming Language - 第7章 使用包、crate和模块管理不断增长的项目 - 7.1 包和crate
  11. XML系列(一)------初识XML
  12. 变种 背包问题_【算法设计】背包问题
  13. 计算机word表格求和怎么操作,Word表格编辑技巧:利用“公式”命令求和-word技巧-电脑技巧收藏家...
  14. Hotmail邮箱的POP和SMTP配置
  15. 【matlab】常微分方程的数值解法
  16. Android Retrofit通过OkHttp设置Interceptor拦截器统一打印请求报文及返回报文
  17. Bilinear CNN Faster代码解读
  18. android实现电话通信原理,电话通信原理.pdf
  19. c语言漂亮的壁纸编码,怎么用c语言写一个设定壁纸的demo?
  20. 警察局抓了a,b,c,d 4名偷窃嫌疑犯,其中只有一人是小偷。审问中,a说:“我不是小偷。”b说:“c是小偷。”c说:“小偷肯定是d。”d说:“c在冤枉人。”

热门文章

  1. 大数据系列之数据仓库Hive命令使用及JDBC连接
  2. 3631. [JLOI2014]松鼠的新家【树形DP】
  3. 什么蓝牙耳机打游戏没有延迟?吃鸡蓝牙耳机无延迟排行榜
  4. safari浏览网页点击没有反应苹果浏览器触控失灵
  5. 老婆的驾照要下来了,形容下我此刻的心情
  6. ACM模板(持续更新)
  7. 字符识别 matlab,***字符识别——matlab
  8. [附源码]java毕业设计渔具店管理系统
  9. python怎么表达我喜欢你的句子_我喜欢你的句子超经典【27句】
  10. 销售英语系列:货品成交