
	var points;
    	var polyline;
    	var endMarker;
	var iniMarker;
    	var distance;
    	var listener;
    	var start_icon;
    	var end_icon;
	var textDist;

	function iniciarDistancia() {      		
		points = [];
    		polyline = null;
		iniMarker = null;
	    	endMarker = null;
    		distance = 0;
	    	listener = null;
    		start_icon = new GIcon(G_DEFAULT_ICON, 'http://maps.google.com/mapfiles/dd-start.png');
	    	end_icon = new GIcon(G_DEFAULT_ICON, 'http://maps.google.com/mapfiles/dd-end.png');

    		listener = GEvent.addListener(map, 'click', function(target, point) {		
    			if (point) {
      				if (polyline) {
        				updateEnd(point);
        				map.removeOverlay(polyline);
        				distance += points[points.length-1].distanceFrom(point);
        				var result = distance;        				
					if (result > 1000) {
						result = Math.round(result/10)/100;
						result = "Distancia:  " + result + " km";        					
					} else {		
						result = Math.round(result*100)/100;			
        					result = "Distancia:  " + result + " m";
					}					
      				} else {					
					result = "";
        				addStart(point);					
      				}	
      				points.push(point);
      				polyline = new GPolyline(points, "#0000ff", 4);
      				map.addOverlay(polyline);	
				textDist = document.getElementById("distext")							
				textDist.innerHTML = result;				
    			}
  		});
	}

	function addStart(point) {		
    		iniMarker = new GMarker(point, {
      			icon: start_icon
    			});
    		iniMarker.markerId = 'start';
    		map.addOverlay(iniMarker);
  	}

  	function updateEnd(point) {
    		if (!endMarker) {
      			endMarker = new GMarker(point, {
        			icon: end_icon
      				});
      			endMarker.markerId = 'end';
      			map.addOverlay(endMarker);
    		}
    		endMarker.setPoint(point);
  	}

	function restart() {				
		map.removeOverlay(polyline);
		map.removeOverlay(endMarker);
		map.removeOverlay(iniMarker);
    		points = [];
    		polyline = null;
		iniMarker = null;
    		endMarker = null;		
    		distance = 0;
		GEvent.removeListener(listener);
    		textDist = document.getElementById("distext")							
		textDist.innerHTML = "";		
	}
