Gmaps API v3 - > infoWindow内容未显示

时间:2013-04-10 05:54:26

标签: javascript google-maps maps infowindow

我在我的网站上使用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实际上会正确调整大小......但是没有显示任何内容。

我上下搜索网页,试图摆弄它,但无济于事。

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

提前致谢!

克里斯

2 个答案:

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