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
});

我知道你可以有两条路。但是,我遍历了我的多边形构建器,所以我得到的是一张非常黑的地图,因为它一直在重绘他的容器。

我想要的是一个 0.5 不透明度的容器,其中有孔,这些孔是被迭代的较小多边形。 编辑 1: 如果我只使用一种形状,我可以为这些多种形状获得所需的效果。我想我需要将所有路径移动到他们自己的变量中,然后将它们放入地图中?

4

1 回答 1

0

我看不到您是如何在代码片段中构建多边形的。

但是,对于带有孔的多边形,每个单独的路径都需要是定义多边形的数组中的一个条目。对于具有四个孔的多边形,您需要在一个多边形内定义五个路径。

为了让孔在支持 Canvas 图形的浏览器中正确显示,有必要考虑缠绕方向:每个孔都应定义为与包含它的多边形相反的方向。也就是说,对于由顺时针方向前进的点定义的包含多边形,它包含的每个孔都需要逆时针定义。

于 2012-05-16T13:30:24.800 回答