2010-07-30 6 views
0

J'ai le problème suivant avec Googlemaps.Inforoute dans Googlemaps ne remplira pas

J'ai créé une fonction createMarker qui renvoie un marqueur que je publie avec addOverlay(). Cela fonctionne parfaitement, le marqueur est affiché mais le seul problème est l'événement click pour le marqueur, je veux un infowindow qui est rempli avec le texte 'Je veux que ce texte soit publié', à la place il est rempli avec un var appelé html qui J'ai placé au début de mon code (var html = 'test';), j'ai reçu plus tôt un message avec 'html n'est pas défini', c'est pourquoi est défini le html var. Chaque infowindow contient le texte 'test'. J'ai essayé d'utiliser updateInfoWindow() mais cela ne fonctionne pas, quelqu'un de familier avec ce problème? Je peux vous fournir la source complète, mais je pense que la fonction createMarker devrait suffire.

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; 
} 

Répondre

0

Résolu.

Je remplace var html. pas parfait mais ça marche.

Questions connexes