需要动态地向javascript数组添加值

时间:2013-06-16 02:49:14

标签: php javascript google-maps

我有一个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]);
    };

1 个答案:

答案 0 :(得分: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 site有一些有用的examples。)