3

我在我的网站上使用 Google Maps API v3 并尝试显示标记数组中的标记。

以下是相关代码:

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 实际上会正确调整大小......但没有显示任何内容。

我已经在网上上下搜索并尝试摆弄它,但无济于事。

有没有人经历过这种情况并可能给我一个关于如何解决这个问题的提示?

提前致谢!

克里斯

4

2 回答 2

4

我刚刚发现错误!

我已经使用 CSS 设置了父 div(地图画布所在的 DIV)...并将 z-index 设置为 11。显然这阻止了 infowindow 的内容位于顶部...

希望能帮助一些可能犯过同样“错误”的人:)

感谢 kevmc 提供帮助

于 2013-04-10T20:14:15.480 回答
0

我认为标记对象没有标题属性,您需要使用以下方法检索它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);
         });
      }
   }
}
于 2013-04-10T06:10:15.253 回答