在整个地图上绘制多边形

rfs*_*raz 3 android google-maps google-maps-android-api-2

我正在使用谷歌地图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));
Run Code Online (Sandbox Code Playgroud)

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

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

小智 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);
Run Code Online (Sandbox Code Playgroud)

我希望你看到这段代码的去向.它与android v2地图一起工作正常.

我认为浮点计算存在一些问题.另一点是,如果你在俄罗斯和美国之间看起来非常开心(例如LatLng(0,180),LatLng(0,-180)),你很可能会看到一条很细的线.

这是你的多边形.

PS:如果你看到你的地图上的洞有一个简短的抬头,它是如何为你解决的.我想很多人都有同样的问题.


Nav*_*mar 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))
Run Code Online (Sandbox Code Playgroud)