すべて、私は次のコードを持っています:
function addPoints() {
newpoints[0] = new Array(41.45998, 87.59643, icon0, 'Place', 'Content to open');
for(var i = 0; i < newpoints.length; i++) {
var point = new GPoint(newpoints[i][1],newpoints[i][0]);
var popuphtml = newpoints[i][4] ;
var marker = createMarker(point,newpoints[i][2],popuphtml);
map.addOverlay(marker);
}
}
私の地図にマーカーを表示するために、これの周りに他のコードがあります。ただし、この値はハードコーディングされています。緯度/経度座標と他の値を持つPHP/mySQLデータベースがあります。マーカーを作成したいエントリが3つあるとします。この関数で正しく使用できるように、データベースから取得したlat / long関数をaddPoints関数に渡すにはどうすればよいですか?
addPointsのコードを次のように更新しました。
function addPoints(num, lat, long) {
newpoints[num] = new Array(lat, long, icon0, 'Place', 'Stuff name');
alert("The newpoints length is: "+newpoints.length);
for(var i = 1; i < newpoints.length; i++) {
var point = new GPoint(newpoints[i][1],newpoints[i][0]);
var popuphtml = newpoints[i][4] ;
var marker = createMarker(point,newpoints[i][2],popuphtml);
map.addOverlay(marker);
}
}
私はこれを行うことによってこの関数を呼び出します:
<script>
addPoints('<?php echo json_encode($num_coordinates); ?>','<?php echo json_encode($lat_coordinates); ?>', '<?php echo json_encode($long_coordinates); ?>');
</script>
しかし、それは機能しません。それをjavascriptに渡さずに、たとえば緯度座標を出力しようとすると。次の出力が得られます。
{"1":"40.59479899","2":"41.4599860"}
これは私の配列の正しい座標です。ただし、マーカーは作成されません。次に何をすべきか、または私が間違っていることについて何かアイデアはありますか?