MySQLデータベースからマーカー(座標など)のデータを取得しようとしていますが、これらのマーカーをクリックリスナーでマップに追加してinfoWindowを開きます。Google Maps JavaScript APIとMySQL/AJAX
// Request to database
function getLocations() {
if (window.XMLHttpRequest) {
var xmlhttp = new XMLHttpRequest();
} else {
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("POST", "getlocations.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var returnValue = JSON.parse(xmlhttp.responseText);
var infoWindow = new google.maps.InfoWindow;
for(var i=0; i<returnValue.length; i++) {
var marker = new google.maps.Marker({
map: map,
icon: icons['ice_green'].icon,
position: new google.maps.LatLng(returnValue[i][2], returnValue[i][3]),
title: '' + returnValue[i][1],
});
marker.addListener('click', function() {
infoWindow.setContent('test');
infoWindow.open(map, marker);
});
}
}
};
xmlhttp.send();
}
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 35.4681174, lng: 5.3043723},
zoom: 17
});
getLocations();
}
これまでのところ、すべての作品:
は、ここに私のコードです。マークは正しい位置にありますが、マークをクリックすると、最後に追加されたマーカーに対してのみ "infoWindow"が開きます。
問題はどこだ?
ありがとうございました
'var infoWindow = new google.maps.InfoWindow;' marker.addListener( 'クリック'、function(){'は私の推測になります) – George