Google Map API在循环输出多个标记时,addListener事件侦听无效?在同时输出多个标记时,addListener中的click事件中,怎么点击每个标记时弹出的提示信息一样?
代码如下: <script type="text/javascript" language="javascript" src="http://maps.google.com/maps?file=api&v=2.81&key=ABQIAAAAT2TW27KPpzTcS3Av9rRZ8xT1F8mZkeCJn7mpiSa3OPXywey-iRS03DLbdWN6xNsN2xcNlCfu7WPgwA"></script>
<script language="javascript" type="text/javascript">
function AddPointToMap(loc) {
if (GBrowserIsCompatible()) { var loc = "25.048505,121.516701#25.048306,121.516700";
var aryLoc = loc.split('#'); //將傳進來的經緯度字串split到陣列
var map = new GMap2(document.getElementById("map"));
map.enableDoubleClickZoom(); //设置可以双击缩放地图,左键双击为放大,右键双击为缩小(默认)。
map.enableScrollWheelZoom(); //设置地图可以由鼠标滚轮控制缩放。 //加入Google MAP上所要用的Control
map.addControl(new GLargeMapControl()); //放大缩小调节杆
map.addControl(new GMapTypeControl()); //地图和卫星图片的切换功能
map.addControl(new GScaleControl()); //比例尺控件
var icon = new GIcon(G_DEFAULT_ICON);
//icon.image = "/images/beachflag.png"; for (var i = 0; i < aryLoc.length; i++) {
var x = aryLoc[i].split(',')[0];
var y = aryLoc[i].split(',')[1];
var point = new GLatLng(x, y); //經緯度
var erOptions = { icon: icon, title: x + ";" + y };
var er = new GMarker(point, erOptions);
map.addOverlay(er); //加入Marker
if (i == 0) { map.setCenter(point, 18); } //將地圖的中心設在定一個點
GEvent.addListener(er, "click", function() {
er.openInfoWindowHtml("标记 <B>" + x+";"+y + "</B>");
})
}
}
}
</script></head>
<body id="MainBody" runat="server">
<form id="form1" runat="server">
<div id="map" style="width: 600px; height: 600px">
</div>
<span id="sp_msg"></span>
</form>
</body>
代码如下: <script type="text/javascript" language="javascript" src="http://maps.google.com/maps?file=api&v=2.81&key=ABQIAAAAT2TW27KPpzTcS3Av9rRZ8xT1F8mZkeCJn7mpiSa3OPXywey-iRS03DLbdWN6xNsN2xcNlCfu7WPgwA"></script>
<script language="javascript" type="text/javascript">
function AddPointToMap(loc) {
if (GBrowserIsCompatible()) { var loc = "25.048505,121.516701#25.048306,121.516700";
var aryLoc = loc.split('#'); //將傳進來的經緯度字串split到陣列
var map = new GMap2(document.getElementById("map"));
map.enableDoubleClickZoom(); //设置可以双击缩放地图,左键双击为放大,右键双击为缩小(默认)。
map.enableScrollWheelZoom(); //设置地图可以由鼠标滚轮控制缩放。 //加入Google MAP上所要用的Control
map.addControl(new GLargeMapControl()); //放大缩小调节杆
map.addControl(new GMapTypeControl()); //地图和卫星图片的切换功能
map.addControl(new GScaleControl()); //比例尺控件
var icon = new GIcon(G_DEFAULT_ICON);
//icon.image = "/images/beachflag.png"; for (var i = 0; i < aryLoc.length; i++) {
var x = aryLoc[i].split(',')[0];
var y = aryLoc[i].split(',')[1];
var point = new GLatLng(x, y); //經緯度
var erOptions = { icon: icon, title: x + ";" + y };
var er = new GMarker(point, erOptions);
map.addOverlay(er); //加入Marker
if (i == 0) { map.setCenter(point, 18); } //將地圖的中心設在定一個點
GEvent.addListener(er, "click", function() {
er.openInfoWindowHtml("标记 <B>" + x+";"+y + "</B>");
})
}
}
}
</script></head>
<body id="MainBody" runat="server">
<form id="form1" runat="server">
<div id="map" style="width: 600px; height: 600px">
</div>
<span id="sp_msg"></span>
</form>
</body>
er.openInfoWindowHtml("标记 <B>" + x+";"+y + "</B>");
})
点击for循环中的标记,所有输出信息都是一样的,这是为什么?
if (GBrowserIsCompatible()) { var loc = "25.048505,121.516701#25.048306,121.516700";
var aryLoc = loc.split('#'); //將傳進來的經緯度字串split到陣列
var map = new GMap2(document.getElementById("map"));
map.enableDoubleClickZoom(); //设置可以双击缩放地图,左键双击为放大,右键双击为缩小(默认)。
map.enableScrollWheelZoom(); //设置地图可以由鼠标滚轮控制缩放。 //加入Google MAP上所要用的Control
map.addControl(new GLargeMapControl()); //放大缩小调节杆
map.addControl(new GMapTypeControl()); //地图和卫星图片的切换功能
map.addControl(new GScaleControl()); //比例尺控件
var icon = new GIcon(G_DEFAULT_ICON);
//icon.image = "/images/beachflag.png"; for (var i = 0; i < aryLoc.length; i++) {
var x = aryLoc[i].split(',')[0];
var y = aryLoc[i].split(',')[1];
var point = new GLatLng(x, y); //經緯度
var erOptions = { icon: icon, title: x + ";" + y };
//var er = new GMarker(point, erOptions);
var er = createMarker(point, erOptions, x);
map.addOverlay(er); //加入Marker
if (i == 0) { map.setCenter(point, 18); } //將地圖的中心設在定一個點
//GEvent.addListener(er, "click", function() {
//er.openInfoWindowHtml("标记 <B>" + x + "</B>");
//})
}
}
}
function createMarker(point, erOptions, html) {
var er = new GMarker(point, erOptions);
GEvent.addListener(er, 'click', function() {
er.openInfoWindowHtml(html);
});
return er;
}