当标记变得可见时,在标记周围添加一个圆圈

时间:2015-08-05 16:38:59

标签: java android google-maps android-maps-extensions

目前我正在使用谷歌地图Android API实用程序进行群集,但是当我从群集中看到/渲染时,我没有找到在标记周围添加圆圈的方法。我希望每个标记周围都有一个圆圈。有没有办法在Android地图扩展库中实现这个目标?

这是群集时 when clustered

当群集渲染当前行为时

When rendered cluster this is the current behavior

期望的行为

Desired behavior

2 个答案:

答案 0 :(得分:1)

我认为这个用于群集的库可以帮到你。 Android Maps Extensions https://github.com/mg6maciej/android-maps-extensions

Android Get the markers that are not clustered

如果您只需要更改标记的图标,则可以制作png图像(例如,使用默认标记图标和圆圈)并将其粘贴到标记作为资源。

map.addMarker(new MarkerOptions()
     .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_circle)));

如果你需要自定义圈子,你可以通过编程方式创建它,但你仍然需要自定义标记图标(当然还提供不同版本(hdpi,xhdpi ...)来调整大小)

// circle
int diameter = 500;
Bitmap bm = Bitmap.createBitmap(diameter, diameter, Bitmap.Config.A
Canvas canvas = new Canvas(bm);
Paint p = new Paint();
p.setColor(getResources().getColor(R.color.green));
canvas.drawCircle(diameter / 2, diameter / 2, diameter / 2, p);


// marker icon through Drawable
Drawable drawable = getResources().getDrawable(R.drawable.marker_icon, null);
// you should choose bounds
// drawable.setBounds(left, top, right, bottom);
drawable.draw(canvas);

//OR marker icon through Bitmap
Bitmap bmIcon = BitmapFactory.decodeResource(getResources(), R.drawable.marker_icon);
// choose correct top and left margin
canvas.drawBitmap(bmIcon, diameter / 2, diameter / 2, p);


map.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.fromBitmap(bm)));

答案 1 :(得分:0)

Google地图现在有一个API for drawing a circle,您可以将其与一个简单的标记结合使用,它应具有相同的效果