One hundred markers are randomly generated, and assigned a random time over a 24 hour period. The scriptaculous sliders adjust the range of times currently visible.

function drawMap()
{
  mapstraction = new Mapstraction('mapstraction', 'google');
  var myPoint = new LatLonPoint(51.387745, -0.50914);
  mapstraction.setCenterAndZoom(myPoint, 14);
  addMarkers( 100 ); 

  addSlider();
  sliderChanged(slidervalues);
}

function sliderChanged(offsets) {
  var min = new Date(slider.timeMin + (offsets[0] / 100) * (slider.timeMax - slider.timeMin));
  var max = new Date(slider.timeMin + (offsets[1] / 100) * (slider.timeMax - slider.timeMin));

  var tw = document.getElementById( 'timeWindow' );
  tw.innerHTML = min.toString() + " -> " + max.toString();

  mapstraction.removeAllFilters();
  mapstraction.addFilter('date', 'ge', min );
  mapstraction.addFilter('date', 'le', max );
  mapstraction.doFilter();

}

function addSlider() {
  slidervalues = [0,100];
  sliderhandles = [$('handle1'), $('handle2')];

  slider = new Control.Slider(sliderhandles, 'track', {
    range:$R(0, 100, false),
    step:1,
    restricted:true,
    sliderValue: slidervalues,
    onChange: sliderChanged,
    onSlide: sliderChanged
  });

  var d = new Date();
  slider.timeMin = d.getTime() - (86400000/2);
  slider.timeMax = d.getTime() + (86400000/2);
}

function addMarkers( count ) {
  var bounds = mapstraction.getBounds();
  var sw = bounds.getSouthWest();
  var ne = bounds.getNorthEast();
  while ( count-- ) {
    var ll = new LatLonPoint( sw.lat + ( ( ne.lat - sw.lat ) * Math.random() ), sw.lon + ( ( ne.lon - sw.lon ) * Math.random() ) );
    var marker = new Marker(ll);

    var number = Math.round( 86400000 * Math.random() );
    var d = new Date();
    d.setTime( d.getTime() - (86400000/2) + number);
    var h = d.getHours(); if (h < 10) { h = "0" + h; }
    var m = d.getMinutes(); if (m < 10) { m = "0" + m; }
	
    var el = document.createElement('h1');
    el.appendChild( document.createTextNode(h + ':' + m));
			
    marker.setInfoBubble(el);
    marker.setAttribute( 'date', d );
    mapstraction.addMarker( marker );
  }
}

  

Information

Demos

Specific Provider Demos

  1. FreeEarth
  2. Google
  3. Map24
  4. MapQuest
  5. Microsoft
  6. MultiMap Commercial and OpenAPI
  7. OpenLayers
  8. OpenSpace
  9. OpenStreetMap
  10. ViaMichelin (new)
  11. Yahoo