• Home
  • Guides
  • Reference
  • Support
Search Results for

    Show / Hide Table of Contents
    • Introduction
      • Instantiating Routes
      • Instantiating Jobs
      • Building Routes
      • Optimizing Routes
      • Sequencing Routes
      • Recommending Routes
      • Inserting Jobs
      • Evaluating Routes
    • Use Cases
      • Shifts
      • Time Windows
      • Dates
      • Attributes
      • Driver Breaks
      • Capacities
      • Multi-day Routes
      • Schedules
      • Vehicles
      • Linked Stops
      • Zones
      • Dense Routing
      • Verizon Connect Fleet

    Evaluating Routes

    The evaluate routes call takes a set of routes, and calculates their costs, distances, arrival times, breaks, and violations. The evaluation operation does not perform any route optimization tasks - the job sequence is not changed. The evalute call can be used to calculate the time and distance of a route before making a sequence request, thus computing the time and distance savings of the new sequencing. It can also be used to update arrival times when a job is manually inserted onto a route.

    Note

    To run the examples in this tutorial, you will need:

    • A RouteCloud API login. Use your Verizon Connect Enterprise username and password to authenticate with the RouteCloud API. To obtain a username and password, contact Verizon Connect sales.
    • cURL to run the requests. You can download a cURL binary from here.

    Request

    {
      "routes": [
        {
          "id": "route0",
          "location": "39.718005, -104.969531",
          "start_time": "09:00",
          "breaks": [
            { "id": "route0_morning_break", "start": "11:00", "length": "00:15" },
            { "id": "route0_lunch_break", "start": "13:00", "length": "00:30" },
            { "id": "route0_afternoon_break", "start": "15:00", "length": "00:15" }
          ],
          "jobs": [
            "job4", "job11", "job9", "job6", "job8"
          ]
        }, {
          "id": "route1",
          "location": "39.718005, -104.969531",
          "start_time": "09:00",
          "jobs": [
            { "id": "job3", "time_on_site": "00:10", "location": "39.653975, -105.093750" },
            { "id": "job1", "time_on_site": "00:10", "location": "39.725375, -104.791080" },
            { "id": "job7", "time_on_site": "00:10", "location": "39.727919, -105.103126" },
            { "id": "job5", "time_on_site": "00:10", "location": "39.638635, -105.128906", "required_route_attributes": [ "hazmat" ] },
            { "id": "job10", "time_on_site": "00:10", "location": "39.749546, -105.069141" },
            { "id": "job0", "time_on_site": "00:10", "location": "39.635928, -105.049219" },
            { "id": "job2", "time_on_site": "00:15", "location": "39.708990, -105.026954" }
          ]
        }
      ],
      "jobs": [
        { "id": "job4", "time_on_site": "00:15", "location": "39.590789, -105.084376" },
        { "id": "job6", "time_on_site": "00:10", "location": "39.597111, -105.041015" },
        { "id": "job8", "time_on_site": "00:10", "location": "39.615167, -104.887500", "time_window": { "start" : "13:00", "end" : "15:00" } },
        { "id": "job9", "time_on_site": "00:10", "location": "39.820688, -105.133594" },
        { "id": "job11", "time_on_site": "00:10", "location": "39.556465, -104.976563" }
      ]
    }
    

    route_evaluation_request.json evaluation request - download it here. Click here to open it in the UI.

    route_evaluation_request.json defines two routes.
    route0 has five jobs, defined using references, and three driver breaks. job8 has a time window of 1:00 PM to 3:00 PM, so the route will idle until 1:00 PM before delivering this job.
    route1 has seven jobs, defined inline. job5 requires the hazmat attribute; route1 does not provide this attribute, so the job will produce a missing_route_attributes violation.

    You can run the request in the command line using cURL:

    curl -u "youraccount%3Amain:password" "https://routecloud.telogis.com/v1/evaluate?wait=1" -H "Content-Type: application/json" --data-binary "@route_evaluation_request.json" -L
    

    Substitute youraccount%3Amain for your username (replacing the colon with %3A), and password with your password. See the Authentication topic for more information and alternative authentication methods. The wait=1 parameter instructs RouteCloud to return the results synchronously. This means that results are returned directly to the command window. See Retrieving API Results for more information about synchronous and asynchronous tasks.

    Response

    {
      "routes": [
        {
          "id": "route0",
          "cost": 109.82,
          "internal_cost": 242.89,
          "distance_meters": 177332.0,
          "working_time": "04:57:24",
          "driving_time": "02:44:32",
          "stops": [
            {
              "location": "39.718005,-104.969531",
              "type": "depot",
              "arrival_time": "09:00:00",
              "time_on_site": "00:00:00",
              "distance_to_meters": 0.0,
              "time_to": "00:00:00"
            },
            {
              "type": "job",
              "id": "job4",
              "arrival_time": "09:29:54",
              "time_on_site": "00:15:00",
              "distance_to_meters": 23942.0,
              "time_to": "00:29:54"
            },
            { "id": "job11", ... },
            { "id": "job9", ... },
            {
              "type": "break",
              "id": "route0_morning_break",
              "arrival_time": "11:00:00",
              "time_on_site": "00:15:00",
              "distance_to_meters": 0.0,
              "time_to": "00:00:00"
            },
            { "id": "job6", ... },
            { "id": "route0_lunch_break", ... },
            {
              "type": "job",
              "id": "job8",
              "arrival_time": "13:30:00",
              "time_on_site": "00:10:00",
              "idle_time": "00:32:52",
              "distance_to_meters": 28634.0,
              "time_to": "00:22:28"
            },
            { "type": "depot", ... }
          ]
        },
        {
          "id": "route1", ... 
          "stops": [
            { "type": "depot", ... },
            { "id": "job3", ... },
            { "id": "job1", ... },
            { "id": "job7", ... },
            {
              "type": "job",
              "id": "job5",
              "arrival_time": "11:12:04",
              "time_on_site": "00:10:00",
              "distance_to_meters": 12706.0,
              "time_to": "00:14:26",
              "violations": [ { "type": "missing_route_attributes" } ]
            },
            { "id": "job10", ... },
            { "id": "job0", ... },
            { "id": "job2", ... },
            { "type": "depot", ... }
          ]
        }
      ]
    }
    

    A snipped version of the route_evaluation_request.json response. The full response is available here. Click here to open in the UI.

    The response contains route0 and route1, with breaks, violations, times, distances in meters, and costs calculated.
    Morning and lunch breaks were inserted on route0, 32 minutes of idle time was inserted before job8, and a missing_route_attributes violation was added to job5 on route1.

    What Next?

    • Continue to Use Cases.
    • View the /v1/evaluate reference.
    • Back to Inserting Jobs.
    In this article
    Back to top
    © 2023 Verizon. All rights reserved. Verizon Privacy policy California Privacy Notice Your Privacy Choices Privacy request