在google maps api中显示多个infoBubbles仅显示最后一个
问题描述:
我在google maps api v3中有infoBubble问题。我从db加载标记并为该标记添加infoBubbles。但只是从最后添加的标记开始工作。你能看到这个问题吗?在google maps api中显示多个infoBubbles仅显示最后一个
var gmarkers = [];
var map;
function load() {
var defaultLocation = new google.maps.LatLng(49.8248188, 15.4684482);
var map = new google.maps.Map(document.getElementById("map"), {
center: defaultLocation,
zoom: 8,
mapTypeId: 'roadmap'
});
downloadUrl("generatexml.php", function (data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var id = markers[i].getAttribute("id");
var name = markers[i].getAttribute("name");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var marker = new google.maps.Marker({
map: map,
position: point
});
var infoBubble = new InfoBubble({
content: '<div' + name + '</div',
boxClass: 'info-box',
alignBottom: true,
pixelOffset: new google.maps.Size(-150, -40),
maxWidth: 300,
disableAutoPan: false,
hideCloseButton: false,
});
google.maps.event.addListener(marker, 'click', function() {
infoBubble.open(map, marker);
console.log(infoBubble.content);
});
gmarkers.push(marker);
}
});
}
答
我发现它时,只需更换:
google.maps.event.addListener(标记, '点击',函数(){
infoBubble.open(map, marker); console.log(infoBubble.content); });
有:
google.maps.event.addListener(marker,'click',function(){
infoBubble.setContent(this.content); infoBubble.open(map, this); });
谢谢你的帮忙。
这看起来像一个封闭的问题 - 结帐这个答案http://*.com/a/7054057/1370442 – bUKaneer 2014-11-21 16:21:21
在这个网站上的许多相同的问题。请搜索。除此之外,您应该查看创建一个'infoWindow'对象并动态设置其内容。只是一个提示。 – MrUpsidown 2014-11-21 16:42:41
Oh thx我用了infoBubble,所以我不在乎infoWindow。谢谢 – Kasta 2014-11-21 16:44:09