緯度と経度、名前、画像を正式なパラメータとして指定する関数を作成しようとしています。そのため、クリックするとマップ上のマーカー(名前と画像)が表示されます。複数のマーカーを追加すると、最後の呼び出しの実際のパラメーターがすべてに渡されますが、機能しているようです。そのため、クリックするたびMarker
に、同じ名前と画像がポップアップ表示されます。
私はここで何が間違っているのかわかりません。なぜなら、私はすべてを正しくスコープしたと思ったからです。
これが私の関数のコードの一部です。私Initialise()
は次のように宣言しました。
var marker = add_marker(51.21904,4.32659000000001,"Iggy Jensen","bro.jpg");
fluster.addMarker(marker);
var marker = add_marker(51.20367,4.341480000000047,"John Doe","bro.jpg");
fluster.addMarker(marker);
var marker = add_marker(51.2041539954234,4.327017528991746,"Joske Vermeulen","bro.jpg");
fluster.addMarker(marker);
関数add_markerは自分で作成しますaddMarkerは、私が使用するクラスター管理システムであるFluster2の一部です。
function add_marker(lat,lng,name,pic) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat,lng),
map: map,
icon: 'icon.png',
title: name
});
infoBubble = new InfoBubble({
maxWidth: 300,
backgroundColor: '#dedddd',
borderWidth: 2,
borderColor: 'rgb(68, 68, 68)'
});
var contentString = '<div id="content">'+
'<h2>'+name+'</h2>'+
'<p><span class="myLabel" style="margin-right:10px">Age </span>21</p>'+
'<p><center><img src="'+pic+'" class="bro_image"></center> </p>'+
'</div>';
var div = document.createElement('DIV');
div.innerHTML = 'No pictures uploaded by this user.';
infoBubble.addTab('Personal', contentString);
infoBubble.addTab('Pictures', div);
google.maps.event.addListener(marker, 'click', function() {
if (!infoBubble.isOpen()) {
infoBubble.open(map, marker);
}
});
return marker;
}
function addTab() {
var title = document.getElementById('tab-title').value;
var content = document.getElementById('tab-content').value;
if (title != '' && content != '') {
infoBubble.addTab(title, content);
}
}
どんな助けでも大歓迎です!前もって感謝します!