我在我的网站上使用Google Maps API v3,并尝试显示markersArray中的标记。
以下是相关代码:
var map;
var markersArray = [];
var infowindow;
var marker;
然后我将循环中的标记添加到数组中,调用以下函数
function addMarker(location, name) {
marker = new google.maps.Marker({
position: location,
map: map,
company: name,
title: name
});
markersArray.push(marker);
}
然后我尝试使用此功能显示标记,其效果类似于魅力:
function showOverlays() {
if (markersArray) {
for (var i in markersArray) {
markersArray[i].setMap(map);
google.maps.event.addListener(markersArray[i], 'click', function () {
infowindow.setContent('<div style="height:300px; color:black">' + this.title + '</div>');
infowindow.open(map, this);
});
}
}
}
现在出现了我的问题:infoWindows的内容没有显示出来。它打开了,但没有显示任何内容...... 如果我在其中放入一个300px高的div,则infoWindow实际上会正确调整大小......但是没有显示任何内容。
我上下搜索网页,试图摆弄它,但无济于事。
有没有人经历过这个并且可能会给我一个如何解决这个问题的提示?
提前致谢!
克里斯
答案 0 :(得分:3)
我刚发现错误!
我已经使用CSS设置了父div(地图画布所在的DIV)样式...并将z-index设置为11.显然,这会阻止infowindow的内容位于顶部...
希望能帮助一些可能做同样“错误”的人:)
感谢kevmc尝试提供帮助
答案 1 :(得分:0)
我认为标记对象没有title属性,您需要使用getTitle()
检索它:
function showOverlays() {
if (markersArray) {
for (var i in markersArray) {
markersArray[i].setMap(map);
google.maps.event.addListener(markersArray[i], 'click', function () {
infowindow.setContent('<div style="height:300px; color:black">' + this.getTitle() + '</div>');
infowindow.open(map, this);
});
}
}
}