1

私は配列を持っています

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

私がやりたいのは、これを次のように変換することです。

  var paths = [[
    new google.maps.LatLng(38.872886, -77.054720),
    new google.maps.LatLng(38.872602, -77.058046),
    new google.maps.LatLng(38.870080, -77.058604),
    new google.maps.LatLng(38.868894, -77.055664),
    new google.maps.LatLng(38.870598, -77.053346)
  ], [
    new google.maps.LatLng(38.871684, -77.056780),
    new google.maps.LatLng(38.871867, -77.055449),
    new google.maps.LatLng(38.870915, -77.054891),
    new google.maps.LatLng(38.870113, -77.055836),
    new google.maps.LatLng(38.870581, -77.057037)
  ]];

それぞれの場所

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

私の配列の新しい配列Google LatLng Markersです。

次のように、配列で map 関数を使用してみました。

  point.map(new google.maps.LatLng(point))

しかし、NaN エラーが発生します。すべてのポイントを分割する必要がありますか、それとも map などの呼び出しを使用してより流動的に行うことができますか?

4

1 に答える 1

1

ネストされたループ?

var input = [
    [
        [11.11, 11.11],
        [22.22, 22.22],
        [33.33, 33.33]
    ],
    [
        [11.11, 11.11],
        [22.22, 22.22],
        [33.33, 33.33]
    ]
];
var paths = [];
for (var i = 0; i < input.length; i++) {
    var path = [];
    for (var j = 0; j < input[i].length; j++) {
        path.push(new google.maps.LatLng(input[i][j][0], input[i][j][1]));
    }
    paths.push(path);
}
console.dir(paths);​

デモはこちら

于 2012-05-16T13:36:45.450 に答える