我想在地图上绘制Circle
并在用户触摸时执行某些操作。另外,我找不到Circle
的任何方法。我需要做什么?
谢谢, Sarun
修改
为了澄清我的问题。我想要相对于地面具有恒定距离的圆圈,这意味着,如果我缩放地图,圆圈将变得更大。
答案 0 :(得分:3)
您可以使用OnMapClickListener
。
在回调检查中,点击的LatLng
与Circle
的中心之间的距离是否小于半径。
Location.distanceBetween
应该有所帮助。
答案 1 :(得分:1)
暂时忘记答案。也许你正在寻找的是标记。 https://developers.google.com/maps/documentation/android/marker#customize_the_marker_image
以下是自定义标记以圈出的示例。
private static final LatLng MELBOURNE = new LatLng(-37.81319, 144.96298);
private Marker melbourne = mMap.addMarker(new MarkerOptions()
.position(MELBOURNE)
.title("Melbourne")
.snippet("Population: 4,137,400")
// set your circle pictures here
.icon(BitmapDescriptorFactory.fromResource(R.drawable.circle_pictures)));
更新
如果在放大时需要圆圈变大。我的建议是,你必须创建一个自定义圆,并使半径变大,放大时缩小。这种方法完全是原生的,你已经编写了自己的代码来适应你需要的一切。
class CircleMarker extends View{
private Paint paint;
private float cx,cy,radius;
public CircleMarker(Context context) {
super(context);
paint = new Paint();
paint.setColor(Color.BLUE);
}
@Override
public void onDraw(Canvas c){
c.drawCircle(cx, cy, radius, paint);
}
public void redrawCirle(float cx, float cy, float radius){
this.cx = cx;
this.cy = cy;
this.radius = radius;
invalidate();
}
}