1

我想Circle在地图上画一个并在用户触摸它时做一些事情。另外,我找不到任何与Circle此相关的方法。我需要做什么?

谢谢,萨伦

编辑

为了澄清我的问题。我想要相对于地面具有恒定距离的圆圈,这意味着,如果我缩放地图,圆圈会变大。

4

2 回答 2

3

您可以使用OnMapClickListener.

在回调中检查点击LatLng到的中心之间的距离Circle是否小于半径。

Location.distanceBetween应该有一些帮助。

于 2013-10-06T15:15:48.167 回答
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();
    }
}
于 2013-10-06T13:32:07.430 回答