0

以下のコードは、Google Maps API v2 では機能しません。ポリゴン (外側と内側のポリゴン) は右側の境界線で描画されますが、外側のポリゴンの塗りつぶしの色は描画されません。

PolygonOptions polygonOptions = new PolygonOptions();
polygonOptions.add(outerCoordinates);
polygonOptions.addHole(Arrays.asList(innerCoordinates));
polygonOptions.fillColor(Color.BLUE);
polygonOptions.strokeWidth(1.0f);

誰も同じ問題に直面していますか?

4

2 に答える 2

2

ポリゴン座標を時計回り(または反時計回り)に並べる必要があるかどうかを確認します。順序を変更してみてください。

于 2013-01-06T18:20:12.873 に答える
0

頂点は反時計回りに追加する必要があります。参照

aList<LatLng>が時計回りかどうかを判断する関数を作成しました。コードはこの回答の実装です:

public boolean isClockwise(List<LatLng> region) {
    final int size = region.size();
    LatLng a = region.get(size - 1);
    double aux = 0;
    for (int i = 0; i < size; i++) {
        LatLng b = region.get(i);
        aux += (b.latitude - a.latitude) * (b.longitude + a.longitude);
        a = b;
    }
    return aux <= 0;
}

polygonポイントを追加する前に、次の 3 行を入力します。

if (isClockwise(polygon)) {
    Collections.reverse(polygon);
}
于 2013-01-18T15:51:59.417 に答える