0

我的轮子上有辐条,我不知道如何解决这个问题。我已经为此苦苦挣扎了几天,它不像普通的信息框,因为它没有设置为标记而是多边形,这对我来说是新事物。我有显示来自 XML 文件的数据的多边形,它们显示得很好。我已经在网上搜索并让它将鼠标悬停设置为您将鼠标悬停在多边形上的位置,不透明度会发生变化,并且会弹出一个信息框。问题是信息框在弹出时显示“未定义”而不是我在其中设置的 html 以显示来自 XML 文件的数据。

例如,这里是测试地图的链接。

http://www.mesquiteweather.net/googlemap_poly.html

这是 XML 文件的链接,我只是想在信息框中显示元素事件和过期。

http://www.mesquiteweather.net/xml/warnings_test.xml

这是我用来创建信息框和鼠标悬停事件的代码

 function attachPolygonInfoWindow(polygon, html, event, expires)
  {

       var html = "<strong>" + event + "</strong>";

        eventWarnings.infoWindow = new google.maps.InfoWindow({content: html});

       google.maps.event.addListener(eventWarnings, 'mouseover', function(e) {
             var latLng = e.latLng;
                 this.setOptions({fillOpacity:80});
                 polygon.infoWindow.setPosition(latLng);
                 polygon.infoWindow.open(map);
        });

      google.maps.event.addListener(eventWarnings, 'mouseout', function() {
             this.setOptions({fillOpacity:0.35});
             polygon.infoWindow.close();
    });
}

      var polygon = new google.maps.Polygon(/* omitted for brevity */);
                    attachPolygonInfoWindow(eventWarnings);

          eventWarnings.setMap(map);
       }
  });

我很确定这很容易被我忽略,但我找不到任何与我的问题有关的东西。我很幸运我得到了显示信息框,因为我了解到这很棘手,因为多边形没有真正的中心,而且它们没有像你用我可以处理的标记那样设置。

如果有人有任何建议,请告诉我。

-谢谢

4

1 回答 1

0

您使用 4 个参数定义了 attachPolygonInfoWindow 函数,但在调用它时只提供一个:

 // definition
 function attachPolygonInfoWindow(polygon, html, event, expires)
 ...

 // call
 attachPolygonInfoWindow(eventWarnings);

可能你想要(我没有看到正在使用的 html 或 expires 参数):

attachPolygonInfoWindow(eventWarnings, "", event, null);

另一种选择是将定义更改为:

 // definition
 function attachPolygonInfoWindow(polygon, event, expires)

和调用(假设你要使用“过期”的东西):

attachPolygonInfoWindow(eventWarnings, event, expires);

因为看起来您不需要传入该参数(事件正在提供我希望它提供的功能)。

另外,仅供参考,您的 alertColors.js 中有一个“悬挂逗号”,这让 IE 不高兴......

例子

于 2013-05-01T21:11:51.517 回答