0

グーグルマップ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)
  ];

iveがやろうとしたのは、このコードを自分のループで複製して、以前に保存された座標を次のように使用できるようにすることです。

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;
4

2 に答える 2

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

于 2013-01-06T23:04:03.387 に答える
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));
        }
  });
于 2013-01-06T23:05:12.220 に答える