我寻找错误,但找不到它。由于某种原因,任何谷歌地图信息窗口总是显示相同的信息。
这是一个咖啡脚本代码
infowindow = new google.maps.InfoWindow()
for company in companiesData
marker = new google.maps.Marker({
position: new google.maps.LatLng(company.latitude, company.longitude)
map: map
})
#debugger ---> each company.name is different!
google.maps.event.addListener(marker, 'click', ()->
infowindow.setContent(company.name)
infowindow.open(map,this)
)
我调试了一下,发现每个company.name都不一样。
输出 JavaScript
infowindow = new google.maps.InfoWindow();
_results = [];
for (_j = 0, _len1 = companiesData.length; _j < _len1; _j++) {
company = companiesData[_j];
marker = new google.maps.Marker({
position: new google.maps.LatLng(company.latitude, company.longitude),
map: map
});
_results.push(google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent( company.name);
return infowindow.open(map, this);
}));
}
return _results;
});
那么哪里有错误呢?
您需要关闭可变公司。您可以通过在单独的函数中创建标记来做到这一点。例如:
infowindow = new google.maps.InfoWindow()
for(var n = 0 ; n < n companiesData.length ;n++){
createMarker(companiesData[n]);
}
function createMarker(data){
var marker = new google.maps.Marker({
position: new google.maps.LatLng(parseFloat(data.latitude), parseFloat(data.longitude)),
map: map
})
#debugger ---> each company.name is different!
google.maps.event.addListener(marker, 'click', function(){
infowindow.setContent(data.name);
infowindow.open(map,this);
}
)
}
解释在这里。 http://econym.org.uk/gmap/closure.htm
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)