我有以下代码:
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: 如果我只使用一种形状,我可以为这些多种形状获得所需的效果。我想我需要将所有路径移动到他们自己的变量中,然后将它们放入地图中?
答案 0 :(得分:0)
我无法看到你在代码片段中构建多边形的方式。
但是,对于带孔的多边形,每个单独的路径都需要是定义多边形的数组中的条目。对于具有四个孔的多边形,您需要在一个多边形内定义五个路径。
要使孔在支持Canvas图形的浏览器中正确显示,必须考虑缠绕方向:每个孔的定义方向应与包含它的多边形相反。也就是说,对于由顺时针前进的点定义的包含多边形,它包含的每个孔都需要逆时针定义。