代码之家  ›  专栏  ›  技术社区  ›  chaensel

Gmaps API v3->信息窗口内容未显示

  •  3
  • chaensel  · 技术社区  · 13 年前

    我正在我的网站上使用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的内容没有显示。它打开了,但什么也没有显示。。。 如果我在其中放入一个300像素高的div,infoWindow实际上会适当地调整大小。。。。但是没有显示任何内容。

    我在网上上下搜索了一下,试着摆弄它,但没有用。

    有没有人经历过这种情况,可能会给我一个如何解决的提示?

    提前谢谢!

    克里斯

    2 回复  |  直到 13 年前
        1
  •  4
  •   chaensel    13 年前

    我刚刚发现错误!

    我已经用CSS设计了父div(地图画布所在的div)。。。并将z索引设置为11。显然,这阻止了信息窗口的内容在顶部。。。

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

    感谢kevmc的帮助

        2
  •  0
  •   kevmc    13 年前

    我认为标记对象没有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);
             });
          }
       }
    }