CalculateDistance
We can use CalculateDistance to get distance for two points.
private void btnCalculateDistance_Click(object sender, EventArgs e)
{
btnCalculateDistance.Enabled = false;
try
{
distanceRequest = new TestInternal.ts.DistanceSpecification();
distanceRequest.DistanceUnit = TestInternal.ts.DistanceUnit.Mile;
//distanceRequest..IsNeedMatchCode = true;
distanceRequest.StartLocation = new ts.Location();
distanceRequest.StartLocation.Name = "Stop A";
distanceRequest.StartLocation.Address = new ts.Address();
distanceRequest.StartLocation.Address.Street = "6718 Whittier Avenue";
distanceRequest.StartLocation.Address.City = "McLean";
distanceRequest.StartLocation.Address.State = "VA";
distanceRequest.StartLocation.Address.PostalCode = "22101";
distanceRequest.FinishLocation = new ts.Location();
distanceRequest.FinishLocation.Name = "Stop B";
distanceRequest.FinishLocation.Address = new ts.Address();
distanceRequest.FinishLocation.Address.Street = "1450 Old Chaing Bridge Road";
distanceRequest.StartLocation.Address.City = "McLean";
distanceRequest.StartLocation.Address.State = "VA";
distanceRequest.StartLocation.Address.PostalCode = "22101";
try
{
client.Timeout = 1000 * 60 * 5;// 5 minute
DateTime dt = DateTime.Now;
TestInternal.ts.DistanceResult result = client.CalculateDistance(distanceRequest);
TimeSpan tsp = DateTime.Now.Subtract(dt);
if (result.Status == TestInternal.ts.OperationStatus.Success)
{
StringBuilder sb = new StringBuilder();
sb.AppendFormat("Total Time:{0}\r\n\r\n", tsp);
sb.AppendFormat("{0}\t {1} \r\n", result.StartLocationMatchCode, result.FinishLocationMatchCode);
sb.AppendFormat("{0}\t {1:f2}, [{2}]\r\n", result.Status, result.Distance, result.Time);
txtResult.Text = sb.ToString();
return;
}
else//(result.Status == WebRef.ts.OperationStatus.SuccessWithErrors)
{
StringBuilder sb = new StringBuilder();
sb.AppendFormat("Total Time:{0}\r\n\r\n", tsp);
sb.AppendFormat("Status:{0}\r\n", result.Status);
foreach (TestInternal.ts.Error i in result.Errors)
{
sb.AppendFormat("{0}\r\n", i.Message);
}
txtResult.Text = sb.ToString();
//Show result with error. Some of locations can be skipped or some errors may happen.
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
finally
{
btnCalculateDistance.Enabled = true;
}
}