Ejemplo n.º 1
0
        public static List <AvoidType> Avoid(IRouteOptions options)
        {
            if (options == null)
            {
                options = Maps.DefaultOptions;
            }

            var list = new List <AvoidType>();

            switch (options.HighwaysRestriction)
            {
            case Restriction.Avoid:
                list.Add(AvoidType.Highways);
                break;

            case Restriction.Minimize:
                list.Add(AvoidType.MinimizeHighways);
                break;
            }

            switch (options.TollsRestriction)
            {
            case Restriction.Avoid:
                list.Add(AvoidType.Tolls);
                break;

            case Restriction.Minimize:
                list.Add(AvoidType.MinimizeTolls);
                break;
            }

            return(list);
        }
Ejemplo n.º 2
0
        public static RouteOptimizationType Optimization(IRouteOptions options)
        {
            var optimization = options?.Optimization;

            if (optimization == null || optimization == Drums.Optimization.Default)
            {
                optimization = Maps.DefaultOptions.Optimization;
            }

            switch (optimization)
            {
            case Drums.Optimization.Distance:
                return(RouteOptimizationType.Distance);

            case Drums.Optimization.Time:
                return(RouteOptimizationType.Time);

            case Drums.Optimization.TimeWithTraffic:
                return(RouteOptimizationType.TimeWithTraffic);

            case Drums.Optimization.TimeAvoidClosure:
                return(RouteOptimizationType.TimeAvoidClosure);

            default:
                return(RouteOptimizationType.TimeWithTraffic);
            }
        }
        public void Init()
        {
            _urlHelper    = Substitute.For <UrlHelper>();
            _routeOptions = Substitute.For <IRouteOptions>();

            _urlHelper
            .Route("test", Arg.Is <Object>(value => (Guid) new HttpRouteValueDictionary(value)["id"] == new Guid(Id)))
            .Returns($"/{Id}/test");

            _routeOptions
            .GetNotesRouteName()
            .Returns("test");

            _urlLocationHelper = new UrlLocationHelper(_urlHelper, _routeOptions);
        }
Ejemplo n.º 4
0
        string TravelMode(IRouteOptions options)
        {
            switch (options?.TravelMode)
            {
            case Drums.TravelMode.Walking:
                return("walking");

            case Drums.TravelMode.Bicycle:
                return("bicycling");

            case Drums.TravelMode.Transit:
                return("transit");

            default:
                return("driving");
            }
        }
Ejemplo n.º 5
0
        public override Uri GetDirectionsUri(ILocation from, ILocation dest, IRouteOptions options)
        {
            Guard.ArgumentNotNull(dest, nameof(dest));

            var    destination = Escape(Location(dest));
            var    travelmode  = TravelMode(options);
            string uri;

            if (from == null)
            {
                uri = $"{DirectionsBaseUri}&destination={destination}&travelmode={travelmode}";
            }
            else
            {
                var origin = Escape(Location(from));
                uri = $"{DirectionsBaseUri}&origin={origin}&destination={destination}&travelmode={travelmode}";
            }
            return(new Uri(uri));
        }
Ejemplo n.º 6
0
        public static TravelModeType TravelMode(IRouteOptions options)
        {
            var travelMode = options?.TravelMode;

            switch (travelMode)
            {
            case Drums.TravelMode.Walking:
                return(TravelModeType.Walking);

            case Drums.TravelMode.Transit:
                return(TravelModeType.Transit);

            case Drums.TravelMode.Truck:
                return(TravelModeType.Truck);

            default:
                return(TravelModeType.Driving);
            }
        }
Ejemplo n.º 7
0
        public override Uri GetDirectionsUri(IList <ILocation> stops, IRouteOptions options)
        {
            if (stops == null || stops.Count < 2)
            {
                throw new ArgumentException("Insufficient number of stops", nameof(stops));
            }
            foreach (var stop in stops)
            {
                if (stop == null || (!stop.HasAddress && !stop.HasCoordinate))
                {
                    throw new ArgumentException("Invalid stop in the list", nameof(stops));
                }
            }

            var    origin      = Escape(Location(stops[0]));
            var    destination = Escape(Location(stops[stops.Count - 1]));
            var    travelmode  = TravelMode(options);
            string uri;

            if (stops.Count == 2)
            {
                uri = $"{DirectionsBaseUri}&origin={origin}&destination={destination}&travelmode={travelmode}";
            }
            else
            {
                var waypoints = string.Empty;
                for (int i = 1; i < stops.Count - 1; i++)
                {
                    var stop = stops[i];
                    if (waypoints.Length > 0)
                    {
                        waypoints += '|';
                    }
                    waypoints += Location(stop);
                }
                waypoints = Escape(waypoints);

                uri = $"{DirectionsBaseUri}&origin={origin}&destination={destination}&waypoints={waypoints}&travelmode={travelmode}";
            }
            return(new Uri(uri));
        }
Ejemplo n.º 8
0
 public override Uri GetDirectionsUri(IList <ILocation> stops, IRouteOptions options)
 => throw new NotImplementedException();
Ejemplo n.º 9
0
 public abstract Task <IRouteInfo> GetRouteInfo(IEnumerable <IWaypoint> waypoints, IRouteOptions options);
Ejemplo n.º 10
0
        public override Uri GetDirectionsUri(ILocation from, ILocation dest, IRouteOptions options)
        {
            var uri = string.Format("bingmaps:?rtp={0}~{1}", LocationStr(from), LocationStr(dest));

            return(new Uri(uri));
        }
 public UrlLocationHelper(UrlHelper helper, IRouteOptions routeOptions)
 {
     _urlHelper    = helper;
     _routeOptions = routeOptions;
 }
Ejemplo n.º 12
0
        public Task OpenDirections(ILocation from, ILocation dest, IRouteOptions options)
        {
            var uri = GetDirectionsUri(from, dest, options);

            return(OpenMapUri(uri));
        }
Ejemplo n.º 13
0
        public Task OpenDirections(IList <ILocation> stops, IRouteOptions options)
        {
            var uri = GetDirectionsUri(stops, options);

            return(OpenMapUri(uri));
        }
Ejemplo n.º 14
0
 public abstract Uri GetDirectionsUri(IList <ILocation> stops, IRouteOptions options);
Ejemplo n.º 15
0
 public abstract Uri GetDirectionsUri(ILocation from, ILocation dest, IRouteOptions options);