我正在尝试实施.header-user-menu ul{
z-index:999;
}
样本及其Google Maps
中的内容:
问题在于,圆圈正在消失并出现,我记录了这个问题
在我看来,该部分应该有效:
CircleDemoActivity
问题在于if (marker.equals(radiusMarker)) {
radius = toRadiusMeters(centerMarker.getPosition(), radiusMarker.getPosition());
circle.setRadius(radius);
return true;
}
方法,但也许是一些解决方法。
问题
如何解决这个问题?
答案 0 :(得分:1)
几个月前,我不得不实施一个圆形动画,在一个标记下生长和收缩,告知我们的用户标记位置并不准确。
在第一个实现中,我使用了一个圆圈并遇到了同样的问题。 我最终使用带有圆形图像的GroundOverlay并且它没有闪烁。它可能只需要更多的数学来获得正确的半径。
我希望它能提供帮助:)
答案 1 :(得分:0)
一种解决方法是使用GroundOverlay而不是圆圈。 这是一个示例:
// The drawable to use for the circle
GradientDrawable d = new GradientDrawable();
d.setShape(GradientDrawable.OVAL);
d.setSize(500,500);
d.setColor(Color.BLUE);
d.setStroke(10, Color.BLACK);
Bitmap bitmap = Bitmap.createBitmap(d.getIntrinsicWidth()
, d.getIntrinsicHeight()
, Bitmap.Config.ARGB_8888);
// Convert the drawable to bitmap
Canvas canvas = new Canvas(bitmap);
d.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
d.draw(canvas);
// Maximum radius of the circle
final int radius = 1000;
// Add the circle to the map
final GroundOverlay circle = map.addGroundOverlay(new GroundOverlayOptions()
.position(latLng, 2 * radius).image(BitmapDescriptorFactory.fromBitmap(bitmap)));
现在在你的代码中:
if (marker.equals(radiusMarker)) {
radius = toRadiusMeters(centerMarker.getPosition(), radiusMarker.getPosition());
circle.setDimensions(2 * radius);
return true;
}