GMap2.prototype.centerAndZoomOnBounds = function(bounds) { 
  var center_lat = (bounds.getNorthEast().lat() + 
    bounds.getSouthWest().lat()) / 2.0; 
  var center_lng = (bounds.getNorthEast().lng() + 
    bounds.getSouthWest().lng()) / 2.0; 
  if(bounds.getNorthEast().lng() < bounds.getSouthWest().lng()){ 
    center_lng += 180; 
  } 
  var center = new GLatLng(center_lat,center_lng);
  this.addMapType(G_PHYSICAL_MAP);
  var bounds_zoom = this.getBoundsZoomLevel(bounds);
  var max_zoom = G_PHYSICAL_MAP.getMaximumResolution();
  var zoom = bounds_zoom;
  if (bounds_zoom > max_zoom) {
    zoom = max_zoom;
  }
  this.setCenter(center, zoom, G_PHYSICAL_MAP); 
}


function mapGPS(map, points){
	var gpoints = [];
	var bounds = new GLatLngBounds();
	$(points).each(function(){
	    var point = new GLatLng(this[0], this[1]);
	    bounds.extend(point);
	    gpoints.push(point);
	});
	
	var track = new GPolyline(gpoints);
	map.centerAndZoomOnBounds(bounds);
	map.addOverlay(track);
	map.addControl(new GScaleControl());
	map.addControl(new GSmallZoomControl());
	map.addControl(new GMenuMapTypeControl());
	return gpoints;
}