将数组转换为谷歌纬度/液化数组

Convert Array to Google Lat/Lng Array?

本文关键字:数组 纬度 谷歌 转换      更新时间:2023-09-26

我有数组

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

我尝试在数组上使用地图函数,如下所示:

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

但是得到一个 NaN 错误。我是否需要打破每个点,或者我可以通过诸如map之类的调用更流畅地执行此操作?

嵌套循环?

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

在这里演示