私は Google Maps API V3 とinfoboxesを使用しており、常に 1 つの infobox のみが開かれるように設定しようとしています。
関連するスレッドをたくさん見てきました が、それらを修正して機能させる方法がわかりません。にバインドする必要があることを漠然と知っています
google.maps.event.addListener(map,'click',function() {
});
しかし、それは私が理解できる範囲のほとんどです。
これが私のコードです:
var boxList =[]
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(35.542284,-76.856),
zoom: 11,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
$(document).ready(function(){
$.getJSON('test.json', function(data) {
for (i = 0; i < data.length; i++) {
var item = data[i];
var myLatlng = new google.maps.LatLng(item.lat, item.longs);
var contentString = item.name;
// accidentally left this extraneous code in here...
// var infowindow = new google.maps.InfoWindow({
// content: item.name
// });
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: item.name,
icon: item.type + ".png"
}); // end add new marker
var boxText = document.createElement("div");
boxText.style.cssText = "border: 1px solid black;";
boxText.innerHTML = item.name;
var myOptions = {
content: boxText,
boxStyle: {
opacity: 0.75,
width: "280px"
},
closeBoxMargin: "12px 4px 2px 2px",
};
var ib = new InfoBox(myOptions);
boxList.push(ib);
google.maps.event.addListener(marker,'click',
(function(marker, i) {
return function() {
boxList[i].open(map, this);
}
})(marker, i));
} //end for loop
}) // end getJSON
}); // end jQuery
} // end initialize
編集:このプラグインを使用して InfoWindows でこれを動作させたことを言及する必要がありますが、Web サイトの特定のルック アンド フィールに合わせてスタイルを設定できる必要があります。これが、InfoBox に対して頭を悩ませている唯一の理由です。まず始めに。
正しい方向への指針を本当に感謝します!前もって感謝します。