我正在使用谷歌地图V2 for Android,我需要在整个地图上绘制一个多边形,然后在选定的城镇添加一个洞。这样做的目的是根据一些选项突出显示地图的特定区域。
我尝试使用以下边界在整个地图上绘制多边形:
Arrays.asList(new LatLng(90, -180),
new LatLng(-90, -180),
new LatLng(-90, 180),
new LatLng(90, 180),
new LatLng(90, -180));
但多边形不会被绘制到地图中。我尝试将边界缩小到较小的区域,并且多边形看起来没有问题。
如何用多边形覆盖整个地图?
答案 0 :(得分:5)
我应该合作:
float delta = 0.1f;
List points = Arrays.asList(new LatLng(90, -180),
new LatLng(-90+delta, -180+delta),
new LatLng(-90+delta, 0),
new LatLng(-90+delta, 180-delta),
new LatLng(0, 180-delta),
new LatLng(90-delta, 180-delta),
new LatLng(90-delta, 0),
new LatLng(90-delta, -180+delta),
new LatLng(0,-180+delta));
PolygonOptions options = new PolygonOptions();
options.addAll(points);
options.fillColor(R.color.red_half_alpha); // 50% opacity red, for example #80FF0000
map.addPolygon(options);
我希望你看到这段代码的去向。它与android v2地图一起工作正常。
我认为浮点计算存在一些问题。另一点是,如果你在俄罗斯和美国之间看起来非常开心(例如LatLng(0,180),LatLng(0,-180)),你很可能会看到一条很细的线。
这是你的多边形。
PS:如果你在地图上看到了漏洞,那么它将如何解决问题。我想很多人都有同样的问题。
答案 1 :(得分:2)
尝试使用这个
new PolygonOptions()
.add(new LatLng(85,90), new LatLng(85,0.1),
new LatLng(85,-90), new LatLng(85,-179.9),
new LatLng(0,-179.9), new LatLng(-85,-179.9),
new LatLng(-85,-90), new LatLng(-85,0.1),
new LatLng(-85,90), new LatLng(-85,179.9),
new LatLng(0,179.9), new LatLng(85,179.9))
答案 2 :(得分:-1)
阅读PolygonOptions,我认为你应该能够做到:
List points = Arrays.asList(new LatLng(90, -180),
new LatLng(-90, -180),
new LatLng(-90, 180),
new LatLng(90, 180),
new LatLng(90, 180));
PolygonOptions options = new PolygonOptions();
options.addAll(points)
options.fillColor(#80FF0000); // 50% opacity red, for example
map.addPolygon(options);
如果不这样做,则必须指定填充颜色。 如果你这样做了,抱歉,但我无法猜出你没有发布的代码:)