В моем приложении Rails фон состоит из полноэкранного div с Google Maps и слоя трафика.Вот что вызывается при загрузке страницы:
$(function () {
updateMap();
});
Функция updateMap создает карту Google на элементе div 'google_map':
function updateMap() {
var latlng = new google.maps.LatLng(52.157927, 4.704895);
var myOptions = {
zoom: 10,
center: latlng,
disableDefaultUI: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("google_map"),
myOptions);
var trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
updateTrafficOnMap(map, trafficLayer);
}
Последний вызов этой функции:
function updateTrafficOnMap(map, overlay)
{
overlay.setMap();
overlay = null;
var trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
setTimeout(function(){ updateTrafficOnMap(map, trafficLayer) }, 60000);
}
Что должно обновлять слой трафика каждую минуту.
Теперь div загружается правильно при загрузке страницы, слой также загружается.Однако это никогда не обновляется, поэтому информация о трафике в реальном времени отсутствует, если вы не перезагрузите всю страницу.
Кто-нибудь знает волшебное слово, позволяющее корректно обновлять слой трафика?