在javascript中使用变量

时间:2013-01-06 22:56:14

标签: javascript json google-maps-api-3

从谷歌地图API文档我得到了这个工作:

var flightPlanCoordinates = [
    new google.maps.LatLng(37.772323, -122.214897),
    new google.maps.LatLng(21.291982, -157.821856),
    new google.maps.LatLng(-18.142599, 178.431),
    new google.maps.LatLng(-27.46758, 153.027892)
  ];

我试图做的是用我自己的循环复制这段代码,这样我就可以使用以前存储过的co-ords,如下所示:

var output;
$.getJSON('DisplayMap.php',  function(data) {
        var output = "[ ";
        for (var i in data.b) {
            output+= "new google.maps.LatLng" + "(" + data.b[i].Ya + ", " + data.b[i].Za + ")," + " ";
        }

       output+= "]";
        document.getElementById("placeholder").innerHTML=output;
    alert(output);
  });


                output+= "]";

我检查了输出,它看起来完全符合我的要求。但是,当我用它代替它时,它不起作用:

var flightPlanCoordinates = output;

2 个答案:

答案 0 :(得分:3)

在新代码中,您正在构建字符串而不是数组。你应该有这样的东西:

var output = [];

for (var i in data.b) {
    output.push(new google.maps.LatLng(data.b[i].Ya, data.b[i].Za));
}

此外,我对output内外创建名为getJSON的变量的事实感到有些困惑。请注意,getJSON是异步的,您无法在调用getJSON后立即使用该变量。

答案 1 :(得分:2)

您必须设置正确的javascript Array而不是字符串。像这样:

var output = [];
$.getJSON('DisplayMap.php',  function(data) {
        for (var i in data.b) {
            output.push(new google.maps.LatLng(data.b[i].Ya, data.b[i].Za));
        }
  });