anchor.diff:          console.log(message.text);
           updateSolution();
           $('#solveButton').removeAttr("disabled");
  -      }, error : function(jqXHR, textStatus, errorThrown) {ajaxError(jqXHR, textStatus, errorThrown)}
  +        $('#resolveDirectionsButton').removeAttr("disabled");
  +      }, error : function(jqXHR, textStatus, errorThrown) {ajaxError(jqXHR, textStatus, errorThrown)}
  +    });
  +  };
  +
  +  resolveDirections = function () {
  +    $.ajax({
  +      url: "<%=application.getContextPath()%>/rest/vehiclerouting/solution",
  +      type: "GET",
  +      dataType : "json",
  +      success: function(solution) {
  +        if (vehicleRouteLines != undefined) {
  +          for (var i = 0; i < vehicleRouteLines.length; i++) {
  +            vehicleRouteLines[i].setMap(null);
  +          }
  +        }
  +        if (vehicleRouteDirections != undefined) {
  +          for (var i = 0; i < vehicleRouteDirections.length; i++) {
  +            vehicleRouteDirections[i].setMap(null);
  +          }
  +        }
  +        vehicleRouteLines = undefined;
  +        vehicleRouteDirections = [];
  +        $.each(solution.vehicleRouteList, function(index, vehicleRoute) {
  +          var depotLocation = new google.maps.LatLng(vehicleRoute.depotLatitude, vehicleRoute.depotLongitude);
  +          var previousLocation = depotLocation;
  +          $.each(vehicleRoute.customerList, function(index, customer) {
  +            var location = new google.maps.LatLng(customer.latitude, customer.longitude);
  +            renderDirections(previousLocation, location, vehicleRoute.hexColor);
  +            previousLocation = location;
  +          });
  +          renderDirections(previousLocation, depotLocation, vehicleRoute.hexColor);
  +        });
  +        $('#scoreValue').text(solution.feasible ? solution.distance : "Not solved");
  +      }, error : function(jqXHR, textStatus, errorThrown) {ajaxError(jqXHR, textStatus, errorThrown)}
  +    });
  +  };
  +  renderDirections = function (origin, destination, hexColor) {
  +    var request = {
  +      origin: origin,
  +      destination: destination,
  +      travelMode: google.maps.TravelMode.DRIVING
  +    };
  +    directionsService.route(request, function(response, status) {
  +      if (status == google.maps.DirectionsStatus.OK) {
  +        var directionsRenderer = new google.maps.DirectionsRenderer({
  +          map: map,
  +          polylineOptions: {
  +            geodesic: true,
  +            strokeColor: hexColor,
  +            strokeOpacity: 0.8,
  +            strokeWeight: 4
  +          }
  +        });
  +        directionsRenderer.setDirections(response);
  +        vehicleRouteDirections.push(directionsRenderer);
  +      } else {
  +        console.log("Google directions error status: " + status);
  +      }
       });
     };
   
  
positive.code:       mapTypeId: google.maps.MapTypeId.ROADMAP
      };
      map = new google.maps.Map(mapCanvas, mapOptions);
      loadSolution();
      updateSolution();
    }
  
negative.code: 
    solve = function() {
      $('#solveButton').attr("disabled", "disabled");
      $('#resolveDirectionsButton').attr("disabled", "disabled");
      $.ajax({
        url: "<%=application.getContextPath()%>/rest/vehiclerouting/solution/solve",
        type: "POST",
  