WebAPIからユーザーのjsonオブジェクトの配列を取得しています。各ユーザーのマーカーをその場所に正しく表示できますが、各ユーザーをクリックしてクリックされたアイテムを取得すると、作業に取り掛かることができません。常にリストの最後から情報を取得します。
これは私がそれらを地図上に置くために使用するコードです:
var markers = [];
for ( var i = 0; i < size; i++) {
var zIndex = membersList[i].type;
var latLng = new google.maps.LatLng(membersList[i].latitude,
membersList[i].longitude);
var marker = new google.maps.Marker({
'position' : latLng,
'shadow' : null,
'zIndex' : zIndex,
'title' : membersList[i].username,
'id' : i,
'icon' : markerImage[membersList[i].type]
});
google.maps.event.addListener(marker, 'click', function()
{
console.log(marker.id);
var clicked = membersList[marker.id];
var mType = ['', 'Couple', 'Male', 'Female'];
var textType = mType[clicked.type];
var userName = clicked.username;
$(this).simpledialog2({
mode: 'button',
headerText: "OPTIONS",
headerClose: true,
buttonPrompt: userName+ ' ('+textType+')',
buttons : {
'PROFILE': {
click: function () {
toUser = userName;
loadPage('profile');
},
icon: "info"
},
'MESSAGE': {
click: function () {
toUser = userName;
loadPage('compose');
},
icon: "star",
}
}
});
});
markers.push(marker);
}
markerCluster.addMarkers(markers);
ちなみに、markerClustererを使用して、マップ上にグループ化されたマーカーをいくつかのズームレベルで表示しています。