【发布时间】:2017-03-28 03:15:14
【问题描述】:
我在移动视口时尝试加载谷歌地图标记,但只有我最后添加的标记正在加载。我认为这是一个关闭问题。这是我的代码的一部分:
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(42.271084, -83.737277),
zoom: 16
});
downloadUrl('/data', function(results) {
var resultsJSON = JSON.parse(results.responseText).data;
for (var i = 0; i < resultsJSON.length; i++) {
var lat = resultsJSON[i].lat;
var lng = resultsJSON[i].lng;
var latLng = new google.maps.LatLng(lat, lng);
var marker = new google.maps.Marker({
position: latLng,
map: map,
category:year,
icon: icon.style,
scale: 2
});
if(map.getBounds().contains(marker.getPosition())) {
marker.setMap(map);
}
else {
marker.setMap(null);
}
google.maps.event.addListener(map, "idle", function() {loadMarker(map, marker)});
}
});
}
function downloadUrl(url, callback) {
#ajax call
}
function loadMarker(map, marker) {
if(map.getBounds().contains(marker.getPosition())) {
marker.setMap(map);
console.log("Hello world");
}
else {
marker.setMap(null);
}
}
【问题讨论】:
标签: javascript google-maps closures