карта Google - проблема окна jquery - PullRequest
0 голосов
/ 14 июня 2011

Когда я нажимаю на маркер, всегда отображаются одни и те же данные ... почему?

код:

function load() 
{
  var dialog = $('<div>').dialog({autoOpen:false});
  var map = new google.maps.Map(document.getElementById("map"), 
  {
        center: new google.maps.LatLng(47.6145, -122.3418),
        zoom: 13,
        mapTypeId: 'roadmap'
  });
  var infoWindow = new google.maps.InfoWindow;


  // Change this depending on the name of your PHP file
  downloadUrl("phpsqlajax_genxml.php", function(data) 
  {
    var xml = data.responseXML;
    var markers = xml.documentElement.getElementsByTagName("marker");
    for (var i = 0; i < markers.length; i++) 
    {
      var name = markers[i].getAttribute("name");
      var address = markers[i].getAttribute("address");
      var type = markers[i].getAttribute("type");
      var point = new google.maps.LatLng
                  (
                      parseFloat(markers[i].getAttribute("lat")),
                      parseFloat(markers[i].getAttribute("lng"))
                  );
      var html = "<b>" + name + "</b> <br/>" + address;
      var icon = customIcons[type] || {};
      var marker = new google.maps.Marker
                   ({
                       map: map,
                       position: point,
                       icon: icon.icon,
                       shadow: icon.shadow
                   });

     google.maps.event.addListener(marker, 'click', function() 
     {
         dialog.html(html).dialog('open');
     });
    }
 });

}

Ответы [ 2 ]

1 голос
/ 14 июня 2011

Попробуйте:

1-е изменение

 google.maps.event.addListener(marker, 'click', function() {...});

на

google.maps.event.addListener(marker, 'click', dial(html));

2-е, добавьте следующую функцию:

 function dial(html){
 return function(){
 dialog = $('<div>').dialog({autoOpen:false});
 dialog.html(html).dialog('open');
 }
 }

Hope itпомогает

К

0 голосов
/ 14 июня 2011

Измените эти строки ...

var marker = new google.maps.Marker

google.maps.event.addListener(marker, 'click', function() 

на эти ...

var marker;
marker[i] = new google.maps.Marker

google.maps.event.addListener(marker[i], 'click', function() 
...