internal string GetUrlParam()

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();
        }