当前位置: 代码迷 >> Web前端 >> 使用百度mapBMap.InfoWindow,分别显示不同的信息窗口
  详细解决方案

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

热度:112   发布时间:2013-01-25 15:55:29.0
使用百度地图BMap.InfoWindow,分别显示不同的信息窗口

?

?

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

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

?

[javascript] view plaincopyprint?
  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
?