我正在绘制代表地图上商店的标记。
有一个全局信息窗口出现在每个被点击的标记上,在它为前一个点击的标记关闭之后。
在某些情况下,一些商店可能具有相同的地址,因此标记会出现在彼此的顶部,并且只能看到顶部标记。
为了解决这个问题,我在 infoWindow 中添加了分页。
问题是顶部标记是列表中的最后一个,因此 infoWindow 显示最新商店的信息,并且分页显示“返回”按钮,而不是首先显示第一家商店和“下一个”按钮。
我尝试像这样颠倒“for”循环的顺序,for (i=limit; i>0; i--)
但它不起作用。地图卡住了,好像在运行一些 ajax 请求。
这是代码:
function drawShopsMarkers(){
var marker;
markersArray = [];
var i;
var limit = globalShopsArr.length;
for (i=0; i<limit; i++){
marker = new google.maps.Marker({
position: new google.maps.LatLng(globalShopsArr[i].shopLat, globalShopsArr[i].shopLng),
map: map,
title: globalShopsArr[i].shopTitle
});
markersArray.push(marker);
marker.setMap(map);
google.maps.event.addListener(markersArray[i], 'click', makeListener(i));
}
function makeListener(index) {
return function() {
globalInfowindow.disableAutoPan=true;
globalInfowindow.open(map,markersArray[index]);
CreateInfoWindowString(index);
globalInfowindow.setOptions({
content: globalContentString
});
}
}
}
该CreateInfoWindowString()
函数只是填充globalContentString
包括分页。
你能说是什么导致了问题吗?