0

我有一个数组:

[[[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]]

出来并创建一个新的谷歌多边形。

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

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

}
}

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

4

1 回答 1

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
    ...
}
于 2012-05-14T11:29:28.970 回答