我的项目搜索 eBay API(使用 PHP 并返回 simpleXML)并返回多个项目的邮政编码(目前为 5 个)。然后使用这些信息在我的网站上的谷歌地图上绘制标记。我想做的是创建多个信息窗口以及这些标记,这样我也可以从 eBay 拍卖返回信息并将其放入信息窗口(拍卖链接、物品图片等),但我没有运气!我似乎无法在我的循环中获得正确的闭包,并且我一直在获取信息窗口中显示的数组中的最后一个邮政编码,而不是实际与该标记相关联的邮政编码(只是为了测试目的而这样做)。
我究竟做错了什么?任何信息都会有所帮助。
这是我目前的代码:
for (var i = 0; i < msg.length; i++) {
info = msg[i];
console.log(info);
geocoder.geocode( { 'address': msg[i]}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var marker = new google.maps.Marker({
map: map,
animation: google.maps.Animation.DROP,
icon: image,
position: results[0].geometry.location
})
listenMarker(marker);
markerBounds.extend(results[0].geometry.location);
map.fitBounds(markerBounds);
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
function listenMarker (marker){
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(info);
infoWindow.open(map, this);
});