function initialize() {
	// Create our "tiny" marker icon
	var tinyIcon = new GIcon();
	tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
	tinyIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	tinyIcon.iconSize = new GSize(12, 20);
	tinyIcon.shadowSize = new GSize(22, 20);
	tinyIcon.iconAnchor = new GPoint(6, 20);
	tinyIcon.infoWindowAnchor = new GPoint(5, 1);

	// Set up our GMarkerOptions object literal
	var markerOptions = { icon:tinyIcon };

  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map_canvas"),{mapTypes:[G_NORMAL_MAP,G_SATELLITE_MAP,G_HYBRID_MAP,G_PHYSICAL_MAP,G_SATELLITE_3D_MAP]});
    map.setCenter(new GLatLng(40.730608, -74.001846), 11, G_SATELLITE_MAP);
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());

    // Creates a marker at the given point
    // Clicking the marker will hide it
    function createMarker(latlng, number, desc, link) {
      var marker = new GMarker(latlng, {icon:tinyIcon});
      marker.value = number;
      GEvent.addListener(marker,"click", function() {
        var myHtml = "<div height='1' style='overflow:auto;'><small><b>" + desc + "</b>. <br />For more info, please click <a href='" + link + "'>here</a></small></div>";
        map.openInfoWindowHtml(latlng, myHtml);
      });
      return marker;
	}


	GDownloadUrl("data.xml", function(data, responseCode) {
	  var xml = GXml.parse(data);

	  var bounds = map.getBounds();
	  var southWest = bounds.getSouthWest();
	  var northEast = bounds.getNorthEast();
	  var lngSpan = northEast.lng() - southWest.lng();
	  var latSpan = northEast.lat() - southWest.lat();

	  var markers = xml.documentElement.getElementsByTagName("marker");
	  var desc = xml.documentElement.getElementsByTagName("desc");
	  for (var i = 0; i < markers.length; i++){
	    var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
	    map.addOverlay(new GMarker(point, {icon:tinyIcon}));
			map.addOverlay(createMarker(point, i, desc[i].getAttribute("name"), desc[i].getAttribute("link")));
	  }
	});

  }
}
