in Source/Models/RouteOptions.cs [182:279]
internal string GetUrlParam(int startIdx)
{
var sb = new StringBuilder();
if (Optimize != RouteOptimizationType.Time)
{
sb.AppendFormat("&optmz={0}", Enum.GetName(typeof(RouteOptimizationType), Optimize));
}
if (TravelMode == TravelModeType.Driving && Avoid != null && Avoid.Count > 0)
{
sb.Append("&avoid=");
for (var i = 0; i < Avoid.Count; i++)
{
sb.Append(Enum.GetName(typeof(AvoidType), Avoid[i]));
if (i < Avoid.Count - 1)
{
sb.Append(",");
}
}
}
if (startIdx == 0)
{
if (TravelMode == TravelModeType.Driving && distanceBeforeFirstTurn > 0)
{
sb.AppendFormat("&dbft={0}", distanceBeforeFirstTurn);
}
if (heading.HasValue)
{
sb.AppendFormat("&hd={0}", heading.Value);
}
}
if (DistanceUnits == DistanceUnitType.Kilometers)
{
sb.Append("&du=kilometer");
}
else
{
sb.Append("&du=mile");
}
if (Tolerances != null && Tolerances.Count > 0)
{
sb.Append("&tl=");
int cnt = Math.Min(Tolerances.Count, 7);
for (int i = 0; i < cnt; i++)
{
sb.AppendFormat(CultureInfo.InvariantCulture, "{0:0.######}", Tolerances[i]);
if (i < Tolerances.Count - 1)
{
sb.Append(",");
}
}
}
if (RouteAttributes != null && RouteAttributes.Count > 0)
{
sb.Append("&ra=");
for (var i = 0; i < RouteAttributes.Count; i++)
{
sb.Append(Enum.GetName(typeof(RouteAttributeType), RouteAttributes[i]));
if (i < RouteAttributes.Count - 1)
{
sb.Append(",");
}
}
}
if (DateTime != null && DateTime.HasValue)
{
if (TravelMode == TravelModeType.Transit)
{
sb.AppendFormat(DateTimeFormatInfo.InvariantInfo, "&dt={0:G}", DateTime.Value);
sb.AppendFormat("&tt={0}", Enum.GetName(typeof(RouteTimeType), TimeType));
}
else if (TravelMode == TravelModeType.Driving)
{
sb.AppendFormat(DateTimeFormatInfo.InvariantInfo, "&dt={0:G}", DateTime.Value);
}
}
if (TravelMode != TravelModeType.Walking && maxSolutions > 1 && maxSolutions <= 3)
{
sb.AppendFormat("&maxSolns={0}", maxSolutions);
}
return sb.ToString();
}