Javascript 在谷歌地图中使用JSON-闭包?
我正在从web服务检索结果。结果以JSON的形式返回。JSON如下所示:Javascript 在谷歌地图中使用JSON-闭包?,javascript,Javascript,我正在从web服务检索结果。结果以JSON的形式返回。JSON如下所示: { "001": { name: 'Grocery Store', latitude:30.2669456, longitude:-97.7427782, calendar: { month: 'November' } }, "002": { name: 'Ice Cream', latitude:30.2669425, longit
{
"001": {
name: 'Grocery Store',
latitude:30.2669456,
longitude:-97.7427782,
calendar: {
month: 'November'
}
},
"002": {
name: 'Ice Cream',
latitude:30.2669425,
longitude:-97.7427742,
calendar: {
month: 'November'
}
}
}
在检索到这些数据后,我试图将其添加到谷歌地图中。我已成功初始化我的地图。事实上,推杆出现在正确的位置。当我将鼠标悬停在每个图钉上时,标题将正确显示。但是,当我单击图钉时,信息窗口出现,它显示在每个图钉的相同位置。此外,信息窗口的内容是相同的。我注意到,它总是与json
中的最后一个键关联的值。因此,我怀疑这与闭包有关。同时,我不知道如何解决这个问题
我做错了什么?下面是我的代码,它在结果中循环:
function dataRetrieved(json) {
for (var place in json) {
var marker = new google.maps.Marker({
map: map,
title: json[place].name,
position: {
lat: json[place].latitude,
lng: json[place].longitude
}
});
marker.info = new google.maps.InfoWindow({
content: '<div>' + json[place].calendar.month + '</div>'
});
google.maps.event.addListener(marker, 'click', function() {
marker.info.open(map, marker);
});
}
}
函数数据检索(json){
对于(json中的变量位置){
var marker=new google.maps.marker({
地图:地图,
标题:json[place]。名称,
职位:{
lat:json[place]。纬度,
lng:json[place]。经度
}
});
marker.info=new google.maps.InfoWindow({
内容:''+json[place].calendar.month+''
});
google.maps.event.addListener(标记'click',函数(){
标记信息打开(地图,标记);
});
}
}
谢谢你的帮助 是的,这正是您所期望的-当您单击任何链接时,事件处理程序中使用的变量
marker
就是循环中的最后一项
把它修好
(function(m){
google.maps.event.addListener(m, 'click', function() {
m.info.open(map, m);
});
})(marker);
是的,它是: