多边形谷歌地图中的多个孔在迭代数组时
Multiple Holes in Polygon Google Maps when iterating over array
我有下面的代码:
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:如果我只使用一个形状,我可以为这些多个形状获得所需的效果。我想我需要将所有路径移动到它们自己的变量中,然后将它们放入地图中?
我看不出您如何在代码片段中构造多边形。
但是,对于具有孔洞的多边形,每个单独的路径都需要是定义多边形的数组中的一个条目。对于具有四个孔的多边形,您需要在一个多边形内定义五条路径。
为了使孔在支持 Canvas 图形的浏览器中正确显示,必须考虑缠绕方向:每个孔应以与包含它的多边形相反的方向定义。也就是说,对于由顺时针方向的点定义的包含多边形,它包含的每个孔都需要逆时针定义。
相关文章:
- 如何在DataTables 2.1中迭代对象数组
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- 如何在Jquery中迭代JSON数组
- 为什么数组在对象内部迭代对象时存储重复值
- 迭代和修改Firebase数组会导致未定义
- 在对象上迭代以验证它是否's键存在于数组中
- 在JSON数组中进行迭代,并为其元素设置样式
- 我需要迭代一个JSON数组——不知道如何做到——已经搜索过了,但仍然可以'我一点也不知道
- JavaScript:如何在迭代过程中修改数组中的值
- 使用Ruby数组使用JS在视图中进行迭代和显示
- 使用javascript在数组中迭代和映射JSON
- 在数组中迭代时的JS循环位置
- 在可变长度d3的多维数组上迭代
- MVC:使用Web窗体视图引擎在javascript中迭代Viewbag数组
- 如何通过迭代对象数组来删除某些项目
- 如何在 JavaScript 中动态地编写可迭代的函数数组
- 使用节点在 JSON 数组中搜索项目(最好不迭代)
- 使用 promises/dedelay 异步迭代一组文件
- 不能让.offset()方法在迭代一组列表项时工作
- 迭代2个数组并找到匹配,但需要相同的索引