我正在尝试使用每个循环来更改地图的中心以转到不同的地方,但是当我执行代码时,地图不会显示所有位置而是地图显示第一个和最后一个位置,我将是如果你能解决这个问题我很感激。
这是代码:
node.js
var a = new google.maps.LatLng(8.8013, -74.72538);
var b = new google.maps.LatLng(1.0619, -73.2558);
var c = new google.maps.LatLng(12.5872, -81.7025);
var d = new google.maps.LatLng(3.2719, -73.0877);
var locations = new Array(a, b, c, d);
var mapProp = {
center: new google.maps.LatLng(5.0619, -70.2558),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
function initialize() {
goToLocations(locations);
}
google.maps.event.addDomListener(window, 'load', initialize);
function goToLocations(locations) {
$.each(locations, function (index, location) {
goToLocation(location);
});
}
function goToLocation(location) {
// here I can not see all locations
window.setTimeout(map.setCenter(location), 5000);
}
答案 0 :(得分:1)
您的function
工作正常,它实际上显示了您array
上的所有城市。但是,我们无法看到它。 function
的速度非常快,我们只能看到第一个和最后一个。
尝试将Timeout
置于$.each
函数中,它将起作用:
$.each(locations, function (index, location) {
window.setTimeout(function(){
goToLocation(location);
}, 1000);
});