0

我有一个返回地图坐标数组的 php 函数。

然后我试图将它们放在谷歌地图上

    for (var i=0; i<coords.length; i++) {
        var via = new google.maps.LatLng(coords[i][1], coords[i][2]);
    };

其中 via 是 lat 和 longs,而 coords[i][1]、coords[i][2] 是从 php 数组中提取的。

此方法仅在函数运行时将数组的最后一个值写入映射,我需要它来生成整个数组。

其次,当数组完成循环时,我只需要提取数组的最后一个值并将其放入变量“end”中。

****也试过

  var via = [];
    for (var i=0; i<coords.length; i++) {
        via.push([new google.maps.LatLng(coords[i][1], coords[i][2])]);
    };

   var via = [];
    for (var i=0; i<coords.length; i++) {
        var viaPoints = new google.maps.LatLng(coords[i][1], coords[i][2]);
        via.push([viaPoints]);
    };
4

1 回答 1

3

via每次写入的循环都会覆盖,因此您最终会得到最后一个值。而是尝试将标记添加到循环内的地图。(对于您问题的第二部分,只需end=via在循环完成后设置。)

for (var i=0; i<coords.length; i++) {
    var via = new google.maps.LatLng(coords[i][1], coords[i][2]);

    // add marker to the map here, eg ....
    map.addOverlay(new GMarker(via));
};

var end = via;

(如果您不知道,Maps API 网站有一些有用的示例。)

于 2013-06-16T02:52:04.820 回答