谷歌地图安卓圈子填充不起作用



我正在使用MapView来显示Google Map并尝试创建圆圈覆盖。但是由于某种原因,显示了圆形边框,但它没有填充任何颜色,以下是使用android模拟器生成的内容:

这是我想要实现的目标(我通过w3school在线编辑器创建了它(。

这是代码:

LatLng center = new LatLng(-16.272425327210556,166.4380745618525);
double radius = 9944545.500957435;
CircleOptions co = new CircleOptions().center(center).clickable(false).radius((radius)).fillColor(Color.YELLOW).visible(false);
this.marker_twilight_civil = map.addCircle(co);

我尝试使用不同的半径值,实际上它适用于特定的半径值,在这里我创建了 3 个具有不同半径值的圆,olny 一个被填充,另外两个没有填充。

这是正确填充的圆圈的代码

LatLng center = new LatLng(-16.272425356472187,166.43807456511806);
double radius = 8006044.77150472;
CircleOptions co = new CircleOptions().center(center).clickable(false).radius((radius)).fillColor(Color.GREEN).visible(true);
this.marker_night = map.addCircle(co);

可能是半径太大的问题吗?但是在网络版本上运行良好。

可能是因为半径太大。 谷歌地图使用墨卡托投影,如果圆圈足够大,它会扭曲圆圈。 出于技术原因,如果形状未"关闭",则不会应用填充。 如果形状太大,或者太靠近地图高度倾斜的顶部或底部,则形状将断开,填充将被忽略。

如果它真的很重要,您可以尝试在 Google 地图上强制自定义投影(这可以避免倾斜并保持形状闭合(,但这不是一条适合的路径,我无法提供链接之外的解决方案: https://developers.google.com/maps/documentation/javascript/examples/map-projection-simple

最新更新