Google Maps V3 Infobox在多边形上未定义

时间:2013-05-01 20:26:09

标签: google-maps google-maps-api-3 infobox

我的轮子里有一个轮辐,我不知道如何解决这个问题。我已经挣扎了几天,它不像一个普通的信息框,因为它没有设置为标记而非多边形,这对我来说是新的东西。我有多边形,显示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);
       }
  });

我很确定这是我很容易忽视的东西,但我找不到任何与我的问题相关的东西。我很幸运,因为我已经知道它很棘手,因为多边形没有一个真正的中心,而且它们没有像你用我能处理的标记那样设置,我很幸运。

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

-Thanks

1 个答案:

答案 0 :(得分: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)

和调用(假设您将使用“expires”):

attachPolygonInfoWindow(eventWarnings, event, expires);

因为它看起来不像你需要传递那个参数(事件正在提供我希望它提供的功能)。

另外,仅供参考,你在alertColors.js中有一个“悬挂逗号”,这使得IE不满意......

example