ajax取回的数据在加载的时候,在内部定义一个函数时,并调用域内的变量,在显示的时候出现所有的信息都显示的是最后一条数据的信息。因此应该把在循环内加载并动态创建函数取出,另定义一个函数,在ajax中调用。
function ajaxgetPoly(polyline)
{
if(polyline=="polygon")
{
url="ajaxgetpoint.asp?type=5";
}else
{
url="ajaxgetpoint.asp?type=6";
}
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=function()
{
if (xmlHttp.readyState == 4)
{
var response = xmlHttp.responseText;
//alert(response);
var dlist=response.split("%");
//alert(dlist.length);
for(var i=1;i<dlist.length;i++)
{
var n=eval("("+dlist[i]+")");
addpolyGon(n);
}
}
//alert( n.polyColor);
}
xmlHttp.send(null);
}
1 function addpolyGon(item)
2 {
3 var polypoint=item.polyAry.split('|');
4 var pointary;
5 var pathpointary=new Array();
6 var flightPath=null;
7 for(var i=0;i<polypoint.length-1;i++)
8 {
9 //alert(new google.maps.LatLng(polypoint[i].split(',')[0],polypoint[i].split(',')[1]).lat());
10 pointary=polypoint[i].split(',');
11 pathpointary.push(new google.maps.LatLng(pointary[0],pointary[1]));
12
13 }
14 flightPath=new google.maps.Polygon({
15 map:map,
16 paths: pathpointary,
17 strokeColor: item.polyColor,
18 strokeOpacity: 0.8,
19 strokeWeight: 2,
20 fillColor: item.polyColor,
21 fillOpacity: 0.35
22 });
23 google.maps.event.addListener(flightPath,'click', showinfo);
24 function showinfo(event)
25 {
26 // var verpath=this.getPath();
27 var contentStr="<b>网格名称:</b>"+item.name+"<br/><b>网格管理人:</b>"+item.polymanager+"<br/>";
28 contentStr+="点击位置:"+GetFormatPoint(event.latLng.lat()) + "N," + GetFormatPoint(event.latLng.lng())+"E<br/>";
29
30 infowindow.setContent(contentStr);
31 infowindow.setPosition(event.latLng);
32
33 infowindow.open(map);
34
35
36 }
37 pathary2.push(flightPath);
38
39 }
在此函数中红色部分的内容若是放在外函数内,则最后弹出的信息都会是最后一条数据的信息,因此就把红色函数的内容拿出写一个函数调用,这样就不会出现上述情况。
浙公网安备 33010602011771号