osmdroid地图 画扇形

本文介绍如何在osmdroid地图上绘制扇形。通过创建自定义的PathOverlay子类,按照指定的经纬度添加点并计算角度及弧形边界,实现地图上的扇形区域显示。
摘要由CSDN通过智能技术生成

想要达到的效果:
这里写图片描述

步骤:
这里写图片描述
1.画扇形的两个半径边(p0p1,p1p2)
Overlay的子类中有一个PathOverlay,添加点时我是按p0、p1、p2的顺序添加的,后面画弧时会用到。

PathOverlay pathOverlay = new PathOverlay(color,this);
Paint paint = new Paint();
paint.reset();
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(1);
paint.setColor(color);
paint.setPathEffect(null);
//设置画笔
myPath.setPaint(paint);
//添加点
myPath.addPoint(geoPoint);

2.画扇形的弧
先找的在页面上画弧:

RectF mRectF = new RectF(left, top, right, bottom );
//startAngle:开始角度,水平右侧为0度
//sweepAngle:画的角度
canvas.drawArc(mRectF,startAngle,sweepAngle,false, mPaint);

RectF的四个参数:
这里写图片描述

canvas是在自定义控件中,onDraw的参数,所以自定义了一个类:SectorPathOverlay,将两个半径和弧形放到了一起。所以SectorPathOverlay的代码引用了PathOverlay的代码进行修改。

增加addSectorData方法,用于传入参数&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值