使用百度地图BMap.InfoWindow,分别显示不同的信息窗口

 

 

使用BMap.InfoWindow,在for循环展示信息的时候,总是显示最后一条信息的数据。

其实,可以讲BMap.InfoWindow的创建写在一个单独的function中。这样,每一个BMap.InfoWindow,就是显示的当条的信息。

 

[javascript] view plain copy print ?
  1. function callback(xyResults) {  
  2.    var xyResult = null;  
  3.    for(var i = 0;i<xyResults.length;i++){  
  4.     xyResult = xyResults[i];  
  5.     xySource = qntPoints.points[count*maxCon+i];  
  6.     if (xyResult.error != 0) {  
  7.      continue;  
  8.     }  
  9.     var point = new BMap.Point(xyResult.x, xyResult.y);  
  10.     var myIcon1 = new BMap.Icon("<%=request.getContextPath()%>/js/map/car30.png"new BMap.Size(30,30));  
  11.     var marker = new BMap.Marker(point,{icon:myIcon1});   
  12.     map.addOverlay(marker);  
  13.     txt = "<p style='font-size:14px;'>"+xySource.desc+"</p>" ;  
  14.     <span style="color:#ff0000;"><strong>addInfo(txt,marker);</strong>  
  15. </span>    if(xyResults.length-1==i){  
  16.      map.centerAndZoom(point,6);  
  17.     }  
  18.    }  
  19.    if(qntPoints.parArray.length>++count){  
  20.     BMap.Convertor.transMore(qntPoints.parArray[count], 0, callback);  
  21.    }else{  
  22.     count = 0;  
  23.     qntPoints.parArray = new Array();  
  24.    }  
  25.   }  
  26.     
  27.   <span style="color:#ff0000;">function addInfo(txt,marker){  
  28.     infoWindow = new BMap.InfoWindow(txt);  
  29.     marker.addEventListener("click"function(){this.openInfoWindow(infoWindow);});  
  30.   }  
  31. </span>  

引自博客:

http://blog.csdn.net/mach365/article/details/8103648
 

你可能感兴趣的:(window)