json返回的标记数组指向最后一个标记

时间:2011-11-22 18:21:35

标签: javascript arrays google-maps-api-3

我正在做的是我在json数组返回的地图上放置多个标记,这是我的代码。我的标记正确绘制但是当我点击每个标记时,它会创建一个标记的信息窗口,这是最后一个标记阵列

 function latLongCallback(latitutde,longitutde){
    var latlng = new google.maps.LatLng(latitutde, longitutde);
    var options = {zoom: 4, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP};
    var map = new google.maps.Map(document.getElementById('map'), options);
    $.ajax({type: "GET",
      dataType: 'json',
      url: "http://www.xyz.com/xcv/xainee/test/markers.php",
    success: function(response){
         var total=response.length;
       data_array,name,type,address,lat,lon,point,infowindow,marker,arrival,departure,notes;
         var icon_image = 'http://www.xyz.com/userftp/fawad/test/images/map-icon.png';


       for(var i=0; i < total; i++) 
       {
            data_array=response[i];
            name=data_array['name'];
            address=data_array['address'];
            arrival=data_array['arrival'];
            departure=data_array['departure'];
            notes=data_array['notes'];
            lat=data_array['lat'];
            lon=data_array['lon'];
         contentString ="Name : "+name+"<br/> Location : "+address+"<br/> Arrival :"+arrival+"<br/> Departure : "+departure+"<br/> Notes : "+notes;
            point = new google.maps.LatLng(lat,lon);

            infowindow = new google.maps.InfoWindow({content: contentString,maxWidth: 400,maxHeight: 201});

            marker = new google.maps.Marker({map: map,icon: icon_image, position: point});

            marker.setMap(map);
            google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker);});

       }
        }
    });
    return;
}

这是我的markers.php

     <?php session_start();
  include_once("database.php");
 $data=array();

      $retrive_marker_query = "SELECT fb_user.name,schedule.location,schedule.arrival,schedule.departure,schedule.notes,schedule.lat,schedule.lon FROM schedule,fb_user where fb_user.fb_id = schedule.fb_id";
     $result         =    db_execute($retrive_marker_query);
     $cnt=0;
   while ($row = @mysql_fetch_assoc($result)){
$name=$row['name'];
$address= $row['location'];
$arrival= $row['arrival'] ;
$departure= $row['departure'] ;
$notes= $row['notes'] ;
$lat= $row['lat'];
$lon= $row['lon'];

$data[$cnt]['name']=$name;
$data[$cnt]['address']=$address;
$data[$cnt]['arrival']=$arrival;
$data[$cnt]['departure']=$departure;
$data[$cnt]['notes']=$notes;
$data[$cnt]['lat']=$lat;
$data[$cnt]['lon']=$lon;

$cnt++;
 }
  $data=json_encode($data);
  echo($data);

 ?>

为什么我的标记内容相同,尽管所有标记都是在不同的lat和lon中绘制的

0 个答案:

没有答案