Google maps 将openInfoWindowHtml放置到标记数组中
我在标记数组中放置openInfoWindowHtml时遇到问题。如果for循环中没有addListener,map.addOverlay(markerary[i])就可以正常工作。我的代码有什么问题?谢谢Google maps 将openInfoWindowHtml放置到标记数组中,google-maps,google-maps-markers,Google Maps,Google Maps Markers,我在标记数组中放置openInfoWindowHtml时遇到问题。如果for循环中没有addListener,map.addOverlay(markerary[i])就可以正常工作。我的代码有什么问题?谢谢 function addMarkers(){ var tempMarker; var blueIcon = new GIcon(G_DEFAULT_ICON); blueIcon.image = "http://www...com/.../.p
function addMarkers(){
var tempMarker;
var blueIcon = new GIcon(G_DEFAULT_ICON);
blueIcon.image = "http://www...com/.../.png";
// Set up our GMarkerOptions object
markerOptions = { icon:blueIcon };
for(ctr=0;ctr<default_address.length;ctr++){
tempLatLng = new GLatLng(default_address[ctr][0], default_address[ctr][1]);
tempMarker = new GMarker(tempLatLng,markerOptions);
GEvent.addListener(tempMarker, "click", function()
{tempMarker.openInfoWindowHtml("HI")});
markerArray.push(tempMarker);
}
displayMarkers();
}
function displayMarkers(){
map.clearOverlays();
var i;
for (i = 0; i < markerArray.length; i++) {
map.addOverlay(markerArray[i]);
}
}
函数addMarkers(){
变温标记;
var blueIcon=新GIcon(G_默认图标);
blueIcon.image=”http://www...com/.../.png";
//设置我们的GmarkeProptions对象
markerOptions={icon:blueIcon};
对于(ctr=0;ctr您有marker.openInfoWindowHtml
,但是什么是marker
,它没有在这个函数的任何地方定义。它应该是markerary[i]吗?相反,openInfoWindowHtml
?我假设markerary是一个包含标记对象的全局变量
更新:对于所有标记在最后一个标记的位置(和内容)打开其信息窗口的问题,这应该可以工作
function addMarkers(){
...
for(ctr=0;ctr<default_address.length;ctr++){
tempLatLng = new GLatLng(default_address[ctr][0], default_address[ctr][1]);
tempMarker = new GMarker(tempLatLng,markerOptions);
// add an event listener for this marker
bindInfoWindow(tempMarker, "HI");
markerArray.push(tempMarker);
}
}
// create a new global function for this
function bindInfoWindow(marker, html) {
GEvent.addListener(tempMarker, "click", function() {
marker.openInfoWindowHtml(html)
});
}
函数addMarkers(){
...
对于(ctr=0;ctrim如此愚蠢..但我遇到了一个新问题..当我单击标记时,信息窗口会从最后放置的标记中弹出,而不是在地图中的每个标记上..为什么会这样?我编辑了上面的代码..谢谢,因为你在循环中设置了事件侦听器。我将用一些代码更新我的答案,这些代码应该可以解决这个问题。谢谢你ch!我很高兴它工作得很好!再次感谢!