0

私は 2 つの多角形を持っています:bigそしてsmall-小さい方は大きい方の中に含まれています。

私が実行するかどうか:

//show big, then small...
big.setMap(null);
big.setMap(map);
small.setMap(null);
small.setMap(map);

または私は実行します:

//show small, then big...
small.setMap(null);
small.setMap(map);
big.setMap(null);
big.setMap(map);

私はいつも大きなポリゴンを一番上にしてしまいます。これは、大きなポリゴンによって隠されているため、小さなポリゴンでマウス イベントを受信できないことを意味します。

Google Maps V3 API はポリゴンの Z-Index をどのように管理しますか? 大きなポリゴンに穴を開けて、小さなポリゴンが透けて見えるようにする必要があると考えています...しかし、もっとエレガントな解決策があれば、そうはなりません。

4

2 に答える 2

1

ポリゴンは完全に不透明ですか、それともある程度透明ですか?

それらが不透明な場合は、モール博士が指摘するようzIndexに、オブジェクトに を使用できます。Polygon

それらが部分的に透明である場合、ポリゴンの塗りつぶしの色をアルファ ブレンドする必要がない限り、必要な効果が得られない可能性があります。

塗りつぶしの色をブレンドしたくない場合は、大きなポリゴンに穴をあける必要があります。ただし、これは非常に単純です。大きなポリゴンに 2 つ目のリングを追加し、小さなポリゴンと同じ座標を与えますが、座標の順序が逆になります。次のコマンドを使用して、配列をコピーし、コピーを元に戻すことができます。

var reversed = [].concat(array).reverse();

穴のあるポリゴンの例を次に示します。

于 2013-04-29T10:44:38.593 に答える