Google Maps openInfoWindowHTML array problem

匿名 (未验证) 提交于 2019-12-03 10:24:21

问题:

Could someone please help explain why I can't get this to work? I properly generates all the locations, however, it doesn't generate the info boxes. Why is this and can someone help me with it?

            var map = new GMap2(document.getElementById("map"));             map.addControl(new GSmallMapControl());             map.addControl(new GMapTypeControl());             map.setCenter(new GLatLng(47.6062, -122.3321), 8);             var wa_locations = new Array(new Array("Seattle", "47.6062", "-122.3321", "###-###-####", "###-###-####"),                                          new Array("Bellevue", "47.6104", "-122.2007", "###-###-####", "###-###-####"),                                          new Array("Tacoma", "47.2529", "-122.4443", "###-###-####", "###-###-####"),                                          new Array("Everett", "47.9790", "-122.2021", "###-###-####", "###-###-####"));             for(var i = 0; i < wa_locations.length; i++)             {                 var point = new GLatLng(wa_locations[i][1], wa_locations[i][2]);                 map.addOverlay(new GMarker(point));                  GEvent.addListener(point, "click", function()                 {                     point.openInfoWindowHtml("<b>" + wa_locations[i][0] + "</b><br/>Sales: " + wa_locations[i][3] +  "<br/>Helpdesk: " + wa_locations[i][4] +  "");                 });                                  }    

回答1:

You are adding a listener to your point instead of to your marker. Further, from your comment it appears you have a JavaScript closure issue. You can avoid the listener and the closure by using bindInfoWindowHtml. Here's the last part tweaked to use the marker and bindInfoWindowHtml:

        for(var i = 0; i < wa_locations.length; i++)         {             var point = new GLatLng(wa_locations[i][1], wa_locations[i][2]);             var marker = new GMarker(point);             marker.bindInfoWindowHtml("<b>" + wa_locations[i][0] + "</b><br/>Sales: " + wa_locations[i][3] +  "<br/>Helpdesk: " + wa_locations[i][4] +  "");             map.addOverlay(marker);          }    


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!