2013-04-10 64 views
3

我在我的网站上使用Google Maps API v3,并试图显示markersArray中的标记。Gmaps API v3 - > infoWindow内容未显示

下面是相关代码:

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); 
     }); 
     } 
    } 
} 

现在来到我的问题:infoWind的内容ows没有出现。它打开了,但没有显示任何内容... 如果我把一个300像素的高分辨率,infoWindow实际上正确调整....但没有内容显示。

我已经搜索了网络上下,试图摆弄它,但无济于事。

有没有人经历过这一点,可能会给我一个提示,如何解决这个问题?

在此先感谢!

克里斯

回答

3

我刚刚发现错误!

我已经有父div(地图画布在DIV)风格与CSS ...并将z-index设置为11.显然,阻止infowindow的内容在上面.. 。

希望帮助一些人谁可能会做同样的“错误” :)

感谢kevmc试图帮助

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); 
     }); 
     } 
    } 
} 
+0

嗨kevmc 感谢您的答复。当我插入警报(this.title)时,即使是this.company,它也会提醒正确的值。问题确实是infoWindow的内容没有显示/不显示 谢谢。 – chaensel 2013-04-10 06:16:38

+0

如果您在infowindow上使用Web检查器,它是否包含预期的标记?换句话说,它是显示窗口或填充它的问题) – kevmc 2013-04-10 06:22:02

+0

Hi Kev。填充作品,所有内容都可用,我可以提醒()它没有任何问题。如果我将infowindow.content设置为300px高度的div,则infowindow会实际调整大小。但它ID不显示里面的文字.... – chaensel 2013-04-10 07:02:37

相关问题