public BatchRouteSolveRequest(RouteSolveRequest[] requests) { this.Requests = requests; }
/////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// public RouteSolveResponse Solve( RouteSolveRequest request, IEnumerable<Type> knownTypes) { Debug.Assert(request != null); var context = new RequestContext(_server.OpenConnection(), knownTypes); var url = UriHelper.Concat(context.Connection.Url, _baseUrl); string query = RestHelper.BuildQueryString(request, knownTypes, false); HttpRequestOptions opt = new HttpRequestOptions(); opt.Method = HttpMethod.Post; opt.UseGZipEncoding = true; opt.Timeout = DEFAULT_REQ_TIMEOUT; return _restService.SendRequest<RouteSolveResponse>(context, url, query, opt); }
/////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// Builds request. /// </summary> /// <param name="reqData">Route solve request data.</param> /// <returns>Created route solve request.</returns> public RouteSolveRequest BuildRequest(RouteSolveRequestData reqData) { Debug.Assert(reqData != null); var req = new RouteSolveRequest(); // stops req.Stops = _BuildStopFeatures(reqData.Route.Stops); // Point barriers. if (reqData.PointBarriers != null) { req.PointBarriers = new RouteRecordSet(); req.PointBarriers.Features = reqData.PointBarriers; } // Polygon barriers. if (reqData.PolygonBarriers != null) { req.PolygonBarriers = new RouteRecordSet(); req.PolygonBarriers.Features = reqData.PolygonBarriers; } // Polyline barriers. if (reqData.PolylineBarriers != null) { req.PolylineBarriers = new RouteRecordSet(); req.PolylineBarriers.Features = reqData.PolylineBarriers; } // start time req.StartTime = (reqData.Route.StartTime == null) ? NONE_TIME_VALUE : _FormatEpochTime(reqData.Route.StartTime.Value); req.ReturnDirections = true; req.ReturnRoutes = false; req.ReturnStops = false; req.ReturnBarriers = false; req.OutSR = GeometryConst.WKID_WGS84; req.IgnoreInvalidLocations = _context.SolverSettings.ExcludeRestrictedStreets; req.OutputLines = Enum.GetName(typeof(NAOutputLineType), NAOutputLineType.esriNAOutputLineTrueShapeWithMeasure); req.FindBestSequence = false; req.PreserveFirstStop = true; req.PreserveLastStop = true; req.UseTimeWindows = true; req.AccumulateAttributeNames = null; req.ImpedanceAttributeName = _context.NetworkDescription.ImpedanceAttributeName; req.RestrictionAttributeNames = _FormatRestrictions(); req.AttributeParameters = _FormatAttrParameters(); req.RestrictUTurns = _GetUTurnPolicy(); req.UseHierarchy = true; req.DirectionsLanguage = _GetDirLanguage(); req.OutputGeometryPrecision = null; req.OutputGeometryPrecisionUnits = null; NANetworkAttributeUnits unit = RequestBuildingHelper.GetDirectionsLengthUnits(); req.DirectionsLengthUnits = unit.ToString(); req.DirectionsTimeAttributeName = null; req.OutputFormat = NAOutputFormat.JSON; return req; }