3

我正在使用适用于 Android 的 Google Maps V2,我需要在整个地图上绘制一个多边形,然后在选定的城镇中添加一个洞。根据某些选项,这样做的目的是突出地图的特定区域。

我尝试在整个地图上绘制一个多边形,其边界如下:

 Arrays.asList(new LatLng(90, -180),
   new LatLng(-90, -180),
   new LatLng(-90, 180),
   new LatLng(90, 180),
   new LatLng(90, -180));

但是多边形不会被绘制到地图中。我尝试将边界缩小到较小的区域,并且多边形看起来没有问题。

如何用多边形覆盖整个地图?

4

3 回答 3

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:如果您在地图上看到漏洞,请提醒一下,它是如何为您服务的。我想很多人都有同样的问题。

于 2013-04-11T20:39:58.960 回答
5

试试用这个

         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))
于 2017-01-19T09:22:07.330 回答
-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);

如果您没有这样做,则必须指定填充颜色。如果你这样做了,对不起,但我猜不出你没有发布的代码:)

于 2013-02-21T20:41:35.720 回答