예제 #1
0
        public WebFleetPosition Map(AddressService.CompleteLocationWithAdditionalInformation location)
        {
            var result = new WebFleetPosition()
            {
                TimeStamp    = DateTime.UtcNow,
                PositionText = location.positionText,
                Latitude     = location.geoPosition.latitude * .000001,
                Longitude    = location.geoPosition.longitude * .000001,
            };

            return(result);
        }
        public WebFleetRouteEstimate CalculateRoute(WebFleetSettings settings, WebFleetPosition startPosition, WebFleetPosition endPosition, bool useTraffic, DateTime?startDateTime = null)
        {
            if (!startPosition.HasValidPoints() || !endPosition.HasValidPoints())
            {
                throw new Exception("Lat Long must be specified for start and end locations");
            }

            var webService = new addressClient();
            var result     = new List <WebFleetRouteEstimate>();

            var routingParam = new RoutingParameter()
            {
                useTraffic          = true,
                useTrafficSpecified = true,
                endLatitude         = endPosition.LatitudeInt.Value,
                endLongitude        = endPosition.LongitudeInt.Value,
                startLatitude       = startPosition.LatitudeInt.Value,
                startLongitude      = startPosition.LongitudeInt.Value,
                routeType           = RouteType.Quickest
            };

            if (startDateTime != null)
            {
                routingParam.startDateTimeSpecified = true;
                routingParam.startDateTime          = startDateTime;
            }

            var response = webService.calcRouteSimple(GetAuthenticationParameters(), GetGeneralParameters(), routingParam);

            if (HandleResult(response))
            {
                result.AddRange(from RoutingData route in response.results select _mappingService.Map(route));
            }

            return(result.FirstOrDefault());
        }