2010-07-30 88 views
0

我在Google地图中遇到了以下问题。Google地图中的Infowindow不会填充

我创建了一个createMarker函数,它返回一个我用addOverlay()发布的标记。这个工作非常完美,标记得到了显示,但唯一的问题是标记点击事件,我想要一个infowindow,里面填充'我想要发布这个文本'的文本,而不是填充一个名为html的var我在我的代码开头(var html = 'test';)中设置了,我之前收到一个'html is not defined'的消息,这就是为什么设置了html var。每个infowindow都有文字“测试”。我试过使用updateInfoWindow()但这不起作用,熟悉这个问题的任何人?我可以为您提供完整的源代码,但我认为createMarker函数应该足够了。

function GM_load() { 
    map = new GMap2(document.getElementById("map")); 
    map.addControl(new GSmallMapControl()); 
    map.addControl(new GMapTypeControl()); 
    map.enableScrollWheelZoom(); 
    map.setMapType(G_HYBRID_MAP); 
    geocoder = new GClientGeocoder(); 
    GM_showItems(); 
}  


function GM_showItems() { 
    GDownloadUrl("modules/Googlemaps/ajax/getItems.php", function(data, responseCode) { 
     var xml = GXml.parse(data); 
     var markers = xml.documentElement.getElementsByTagName("marker"); 
     for (var i = 0; i < markers.length; i++) { 


      //start 
      var itemid = markers[i].getAttribute('id'); 
      var title = markers[i].getAttribute('name'); 
      var address = markers[i].getAttribute('address'); 
      var city = markers[i].getAttribute('city'); 
      var x = 0; 
      if (geocoder) { 

       geocoder.getLatLng(address + ' ' + city, 
        function(point) { 
         if (!point) { 
          alert(address + ' ' + city + " not found"); 
         } else { 
          x = x+1; 
          Marker = createMarker(point, x); 
          map.addOverlay(Marker); 
         } 
        } 
       ); 
      } 

     } 

    }); 
} 




function createMarker(latlng, number) { 
    var marker = new GMarker(latlng); 
    marker.value = number; 
    GEvent.addListener(marker,"click", function() { 
     map.openInfoWindowHtml(latlng,'i want this text to be published'); 
    }); 

    return marker; 
} 

回答

0

已解决。

我覆盖了var html。不完美,但它的作品。