android画圆圈,画一个圆圈在Android MapView的

编辑:更新,以反映robguinness答案。

import com.google.android.maps.GeoPoint;

import com.google.android.maps.MapView;

import com.google.android.maps.Overlay;

import com.google.android.maps.Projection;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Point;

public class CircleOverlay extends Overlay {

Context context;

double mLat;

double mLon;

float mRadius;

public CircleOverlay(Context _context, double _lat, double _lon, float radius) {

context = _context;

mLat = _lat;

mLon = _lon;

mRadius = radius;

}

public CircleOverlay(Context _context, double _lat, double _lon, float radius) {

context = _context;

mLat = _lat;

mLon = _lon;

mRadius = radius;

}

public void draw(Canvas canvas, MapView mapView, boolean shadow) {

super.draw(canvas, mapView, shadow);

if(shadow) return; // Ignore the shadow layer

Projection projection = mapView.getProjection();

Point pt = new Point();

GeoPoint geo = new GeoPoint((int) (mLat *1e6), (int)(mLon * 1e6));

projection.toPixels(geo ,pt);

float circleRadius = projection.metersToEquatorPixels(mRadius) * (1/ FloatMath.cos((float) Math.toRadians(mLat)));

Paint innerCirclePaint;

innerCirclePaint = new Paint();

innerCirclePaint.setColor(Color.BLUE);

innerCirclePaint.setAlpha(25);

innerCirclePaint.setAntiAlias(true);

innerCirclePaint.setStyle(Paint.Style.FILL);

canvas.drawCircle((float)pt.x, (float)pt.y, circleRadius, innerCirclePaint);

}

}

“画”,它需要被添加到地图覆盖

mMapView.getOverlays().add(new CircleOverlay(context, loc.getLatitude(),loc.getLongitude()));

希望这有助于。

2011-03-14

nhunston

+0

谢谢...我怎么能改变不透明度 - 透明度 - 的圆。 –

2012-07-04 20:54:35

+0

你为什么要传递一个上下文? –

2012-08-20 15:31:32

+0

结帐此库在地图上绘制圆圈v2:https://github.com/i-schuetz/map_areas –

2014-10-14 21:41:40

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值