谷歌地图中的嵌套数组可以制作多个多边形

时间:2012-05-14 09:35:49

标签: javascript google-maps

我有一个数组:

[[[11.11,11.11],[22.22,22.22],[33.33,33.33]],[[11.11,11.11],[22.22,22.22],[33.33,33.33]]]

我在Javascript中需要做的是每个人都是

  

[[11.11,11.11],[22.22,22.22],[33.33,33.33]]

输出并创建一个新的Google Polygon。

我目前有下面的代码用于一个多边形,它工作正常,但我手动复制并粘贴数组,以查看代码是否有效,能够自动迭代它将很好,然后创建多个多边形在谷歌地图上。

  var locs = [[51.4840407, -0.0318375], [51.4840351, -0.0306535], [51.4839436, -0.0300458],   [51.4840184, -0.0285545]]

 var latLng = []
 var point, _i, _len;
 for (_i = 0, _len = locs.length; _i < _len; _i++) {
  point = locs[_i];
  latLng.push(new google.maps.LatLng(point[0], point[1]));
}

如何将数组放在顶部,拉出每个多边形,然后将其作为单独的多边形绘制到地图上。

根据第一个答案 - 我已将代码重新编写为:

var latLng =[]
var locs = []
for (var _p=0; _p < polys.length; _p++) {
    locs = polys[_p];
    for (_i = 0, _len = locs.length; _i < _len; _i++) {
        point = locs[_i];
        latLng.push(new google.maps.LatLng(point[0], point[1]));
        bermudaTriangle = new google.maps.Polygon({
        paths: [latLng]
        });

        bermudaTriangle.setMap(map);

}
}

然而,当绘制多边形时,它们全部“连接”,因为它们被视为一个 - 而不是每个多边形的单独多边形。

1 个答案:

答案 0 :(得分:0)

您已经有了要求的后半部分,因此您只需要将每个单独的多边形都放入locs然后再使用它。

var polys = [[[11,11],[22,22],[33,33]],[[44,44],[55,55],[66,66]]];
for (var _p=0; _p < polys.length; _p++) {
    locs = polys[_p];
    // locs is [[11,11],[22,22],[33,33]] first time
    // locs is [[44,44],[55,55],[66,66]] second time
    ...
}