本篇在标记点的基础上讨论如何在Android Google Map地图上显示轨迹(Polyline)。
一、首先继承Overlay
class Polyline extends Overlay
二、重写它的draw方法
1、投影转换
线条中会有多个点的信息,所以会牵涉到多次投影坐标和地理坐标的转化,故把投影转换单独封装为一个函数
public Point ChangeProjection(GeoPoint geoPoint){
Projection projection = mv.getProjection();
Point screenPoint = new Point();
projection.toPixels(geoPoint, screenPoint);
return screenPoint;}
2、设置画笔
Paint paint = new Paint();
(1)设置画笔的颜色
paint.setColor(Color.BLUE);
(2)设置画笔的笔形
paint.setStyle(Paint.Style.STROKE); //设置空心
(3)设置画笔的粗细
paint.setStrokeWidth(10);
3、设置路径
Path path = new Path();
path.moveTo(ChangeProjection(point1).x,ChangeProjection(point1).y); //线条起始点
path.lineTo(ChangeProjection(point2).x,ChangeProjection(point2).y); //后续点
path.lineTo(ChangeProjection(point3).x,ChangeProjection(point3).y); //后续点
4、在画布上绘制轨迹
canvas.drawPath(path,paint);
三、在主Activity中实现Polyline
Polyline line = new Polyline();
mv.getOverlays().add(line);
主要代码如下:
运行结果:
覆盖层——线
最新推荐文章于 2024-07-19 11:42:08 发布