关于js函数调用,百度地图添加标记
实现功能:百度地图随机添加25个标注,然后点击标注显示信息是第几个标注。
问题:显示信息时第几个标注。
代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="keywords" content="百度地图,百度地图API" />
<meta name="description" content="百度地图API自定义地图" />
<title>百度地图API自定义地图</title>
<!--引用百度地图API-->
<style type="text/css">
html,body{margin:0;padding:0;}
.iw_poi_title {color:#CC5522;font-size:14px;font-weight:bold;overflow:hidden;padding-right:13px;white-space:nowrap}
.iw_poi_content {font:12px arial,sans-serif;overflow:visible;padding-top:4px;white-space:-moz-pre-wrap;word-wrap:break-word}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?key=dd209544231c9c47255925d3e22ecf07&v=1.3&services=true"></script>
</head>
<body>
<!--百度地图容器-->
<div style="width:816px;height:638px;align:center;border:#ccc solid 1px;" id="dituContent"></div>
</body>
<script type="text/javascript">
//创建和初始化地图函数:
function initMap(){
var map =new BMap.Map("dituContent");
var strpoint =new BMap.Point(116.404, 39.915);
map.centerAndZoom(strpoint, 14);
var bounds = map.getBounds();
var sw = bounds.getSouthWest();
var ne = bounds.getNorthEast();
var lngSpan = Math.abs(sw.lng - ne.lng);
var latSpan = Math.abs(ne.lat - sw.lat);
for (var i = 0; i < 25; i ++) {
var point = new BMap.Point(sw.lng + lngSpan * (Math.random() * 0.7), ne.lat - latSpan * (Math.random() * 0.7));
var marker = new BMap.Marker(point);
map.addOverlay(marker);
var info=new BMap.InfoWindow("第"+i+"标记");
//添加标注
addInfo(info,marker);
}
}
// ,创建标注
function addInfo(info,marker){
marker.addEventListener("onclick", function(){this.openInfoWindow(info)});
}
initMap();//创建和初始化地图
</script>
</html>
说明:以上代码是能正确 执行的,并且点击标记提示信息也是正确的。。。
但是如果我把红色部分直接写成
marker.addEventListener("onclick", function(){this.openInfoWindow(info)});
也就是说 我不想调用函数。问题就出来了,当我点击地图上的标注的点击信息窗口都是第25个标记。
这是为什么呢?请高手解答。
只有20分。。。