从谷歌地图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;
答案 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));
}
});