Rotas com Google Maps

Boa tarde galera, preciso de um HELP:
COMO POSSO FAZER ALGO QUE FAÇA ISSO…

<script type="text/javascript">
    var locations = {}; 
    var map;
    function load( lat, log, zoon, idVeiPos ) {
      map = new google.maps.Map(document.getElementById("mapa"));
      map.setUIToDefault();
      map.enableRotation();
      map.setCenter(new GLatLng(lat,log), zoon);
      
      locations = {}; 
      url = "/monisat/retornaxml2?id=<%=((TsClienteResp) JsfHelper.getSessionAttribute("usuario"))
					.getIdCliente()%>";
      if( idVeiPos > 0 ) {
    	  url += "&idVeiPos="+ idVeiPos;
      }
      
      GDownloadUrl( url, function(data) {   
        var xml = GXml.parse(data);
        var markers = xml.documentElement.getElementsByTagName("marker");
        
        for (var i = 0; i < markers.length; i++) {
          var id = markers[i].getAttribute("id");
          var placa = markers[i].getAttribute("placa");
          var dhpos = markers[i].getAttribute("dhpos");
          var loc = markers[i].getAttribute("loc");
          var vel = markers[i].getAttribute("vel");
          var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                  parseFloat(markers[i].getAttribute("lng")));
          var store = {id: id, placa: placa, dhpos: dhpos, latlng: latlng, vel:vel};
          
          var latlngHash = (latlng.lat().toFixed(6) + "" + latlng.lng().toFixed(6));
          latlngHash = latlngHash.replace(".","").replace(".", "").replace("-","");
          if (locations[latlngHash] == null) {
            locations[latlngHash] = []
          }
          locations[latlngHash].push(store);
        }
        for (var latlngHash in locations) {
          var stores = locations[latlngHash];
          if (stores.length > 1) {
            map.addOverlay(createClusteredMarker(stores));
          } else {
            map.addOverlay(createMarker(stores));
          }
         }
      });
    }

    function createMarker(stores) {
      var store = stores[0];
      var newIcon = new GIcon(G_DEFAULT_ICON, "../themes/img/icone/caminhao.png");
      newIcon.iconSize = new GSize(32, 32);
      var marker = new GMarker(store.latlng, {icon: newIcon}); 
      var html = "<b>ID: </b>" + store.id + "   <b>Placa: </b> "+store.placa +"<br/>"+ 
                 "<b>Atualizado em: </b> "+store.dhpos+"<br/>"+ 
                 "<b>Velocidade: </b> "+store.vel+" Km/h.<br/>"; 
      var hint = "ID...: <b>"+ store.id    + "</b><br/>"+ 
                 "Placa: <b>"+ store.placa + "</b>"; 
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      GEvent.addListener (marker, 'mouseover', function() {
        marker.openInfoWindowHtml(hint);
      });
      GEvent.addListener(marker, 'mouseout', function() {
        marker.closeInfoWindow();
      });
      return marker;
    }

    function createClusteredMarker(stores) {
      var store = stores[0];
      var newIcon = new GIcon(G_DEFAULT_ICON, "../themes/img/icone/caminhao.png");
      newIcon.iconSize = new GSize(32, 32); 
      var marker = new GMarker(stores[0].latlng, {icon: newIcon});
      var html = "";
      var hint = "";
      for (var i = 0; i < stores.length; i++) {
        html +=  "<b>ID: </b>" + store.id + "   <b>Placa: </b> "+store.placa +"<br/>"+ 
                 "<b>Atualizado em: </b> "+store.dhpos+"<br/>"+ 
                 "<b>Velocidade: </b> "+store.vel+" Km/h.<br/>"; 
        hint +=  "ID...: <b>"+ store.id    + "</b><br/>"+ 
                 "Placa: <b>"+ store.placa + "</b>"; 
      }
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      GEvent.addListener (marker, 'mouseover', function() {
        marker.openInfoWindowHtml(hint);
      });
      GEvent.addListener(marker, 'mouseout', function() {
        marker.closeInfoWindow();
      });
      return marker;
    }
</script>

DENTRO DISSO…

<script>
	var directionsDisplay;
	var directionsService = new google.maps.DirectionsService();
	var map;

	function initialize() {
		directionsDisplay = new google.maps.DirectionsRenderer();
		var mapa = new google.maps.LatLng(-16.693026, -49.288331);
		var mapOptions = {
			zoom : 5,
			mapTypeId : google.maps.MapTypeId.ROADMAP,
			center : mapa
		}
		map = new google.maps.Map(document.getElementById('mapa'),
				mapOptions);
		directionsDisplay.setMap(map);
	}

	function calcRoute() {
		var start = document.getElementById('form:start').value;
		var end = document.getElementById('form:end').value;
		var waypts = [];
		var checkboxArray = document.getElementById('form:waypoints');
		for ( var i = 0; i < checkboxArray.length; i++) {
			if (checkboxArray.options[i].selected == true) {
				waypts.push({
					location : checkboxArray[i].value,
					stopover : true
				});
			}
		}
		var request = {
			origin : start,
			destination : end,
			waypoints : waypts,
			optimizeWaypoints : true,
			travelMode : google.maps.TravelMode.DRIVING
		};
		directionsService.route(request, function(response, status) {
			if (status == google.maps.DirectionsStatus.OK) {
				directionsDisplay.setDirections(response);
			}
		});
	}
	google.maps.event.addDomListener(window, 'load', initialize);
</script>

Será que alguém pode me ajudar? Estou quebrando cabeça já fazem alguns dias.

Desde já agradeço.

Att.
Diego Silva