0

私は以下のコードを持っています:

while p < points.length
  locs = points[p]
  latLng = [] 
  i = 0
  len = locs.length

  while i < len
    point = locs[i]
    latLng.push new google.maps.LatLng(point[0], point[1])
    i++
  marker = new google.maps.Polygon(
   paths: latLng
   fillColor: "#000000",
   fillOpacity: 0
   map: @gMap
  )
  markers.push(marker)
  p++

これは、多数の個別のポリゴンを描画する配列を介して繰り返します。それは本当にうまくいきます。しかし、多くのポリゴンが穴を開ける「コンテナポリゴン」を紹介しようとすると困惑します。ここのデモを理解しています...

PropertySearch.tintPolygon = new google.maps.Polygon({
     paths: [ everythingElse, circleOverlay ],
    strokeColor: "#000000",
    strokeOpacity: 0.8,
    strokeWeight: 2,
    fillColor: "#000000",
    fillOpacity: 0.5
});

私はあなたが2つの道を持つことができると思います。ただし、ポリゴンビルダーをループするので、コンテナーを再描画し続けるため、非常に黒いマップが表示されます。

私が取得しようとしているのは、不透明度0.5のコンテナで、小さなポリゴンが繰り返される穴があります。 編集1: 1つの形状のみを使用すると、これらの複数の形状に対して目的の効果を得ることができます。すべてのパスを独自の変数に移動してから、それらをマップに配置する必要があると思いますか?

4

1 に答える 1

0

コードスニペットでポリゴンをどのように構築しているかわかりません。

ただし、穴のあるポリゴンの場合、個別のパスはそれぞれ、ポリゴンを定義する配列のエントリである必要があります。4つの穴があるポリゴンの場合、1つのポリゴン内に5つのパスを定義する必要があります。

Canvasグラフィックをサポートするブラウザで穴が正しく表示されるようにするには、曲がりくねった方向を考慮する必要があります。各穴は、それを含むポリゴンとは逆方向に定義する必要があります。つまり、時計回りに進むポイントによって定義される包含ポリゴンの場合、含まれる各穴は反時計回りに定義する必要があります。

于 2012-05-16T13:30:24.800 に答える