ThinkGeo.com    |     Documentation    |     Premium Support

Calculating the drive time of a route

Hi all,


How do I get the drive time (time it takes to drive from the start point to the end point) for a route between two or more points? I couldn't find this feature in the demo. Is it available in the current version?


Thanks,


Nirish



Nirish, 
  
 To get the drive time, the point is that we need to know the speed for each segment, which should be an attribute of the segment feature. Or we should know the average speed during the route. If we know the speed, the distance can be avalble from the RouteResult, and then the driving time is simple to get. I’m not sure if what i descript is what you want. Any question please let us know. 
  
 Thanks, 
 Johnny

That makes sense Johnny. Would you be able to provide us a sample? 
  
 Thanks, 
  
 Nirish

Hi Nirish,


To get the drive time, the point is that we need to know the speed for each segment. Please refer to the code snippet bellow, hope that will give you some idea:


    RoutingResult routingResult = routingEngine.GetRoute(txtStartId.Text, txtEndId.Text);
    double carUsedTime;
    double truckUsedTime;
    foreach (Feature feature in routingResult.Features)
    {
        double carSpeed = Double.Parse(feature.ColumnValues["carSpeed"]);
        double truckSpeed = Double.Parse(feature.ColumnValues["truckSpeed"]);
        double featureLength=((MultilineShape)feature.GetShape()).GetLength(GeographyUnit.Meter, DistanceUnit.Kilometer);

        carUsedTime += featureLength / carSpeed;
        truckUsedTime += featureLength / truckSpeed;
    }


Thanks,


Johnny