/// <summary> /// Resets stops /// </summary> public void ResetStops() { if (routeParams != null) { routeParams.ClearStops(); } stopPoints.Clear(); }
private void ConfigureThenRoute() { // Guard against error conditions. if (_routeParameters == null) { ShowMessage("Not ready yet", "Sample isn't ready yet; define route parameters first."); return; } if (_stopsOverlay.Graphics.Count < 2) { ShowMessage("Not enough stops", "Add at least two stops before solving a route."); return; } // Clear any existing route from the map. _routeOverlay.Graphics.Clear(); // Configure the route result to include directions and stops. _routeParameters.ReturnStops = true; _routeParameters.ReturnDirections = true; // Create a list to hold stops that should be on the route. List <Stop> routeStops = new List <Stop>(); // Create stops from the graphics. foreach (Graphic stopGraphic in _stopsOverlay.Graphics) { // Note: this assumes that only points were added to the stops overlay. MapPoint stopPoint = (MapPoint)stopGraphic.Geometry; // Create the stop from the graphic's geometry. Stop routeStop = new Stop(stopPoint); // Set the name of the stop to its position in the list. routeStop.Name = $"{_stopsOverlay.Graphics.IndexOf(stopGraphic) + 1}"; // Add the stop to the list of stops. routeStops.Add(routeStop); } // Configure the route parameters with the stops. _routeParameters.ClearStops(); _routeParameters.SetStops(routeStops); // Create a list to hold barriers that should be routed around. List <PolygonBarrier> routeBarriers = new List <PolygonBarrier>(); // Create barriers from the graphics. foreach (Graphic barrierGraphic in _barriersOverlay.Graphics) { // Get the polygon from the graphic. Polygon barrierPolygon = (Polygon)barrierGraphic.Geometry; // Create a barrier from the polygon. PolygonBarrier routeBarrier = new PolygonBarrier(barrierPolygon); // Add the barrier to the list of barriers. routeBarriers.Add(routeBarrier); } // Configure the route parameters with the barriers. _routeParameters.ClearPolygonBarriers(); _routeParameters.SetPolygonBarriers(routeBarriers); // If the user allows stops to be re-ordered, the service will find the optimal order. _routeParameters.FindBestSequence = AllowReorderStopsCheckbox.IsToggled; // If the user has allowed re-ordering, but has a definite start point, tell the service to preserve the first stop. _routeParameters.PreserveFirstStop = PreserveFirstStopCheckbox.IsToggled; // If the user has allowed re-ordering, but has a definite end point, tell the service to preserve the last stop. _routeParameters.PreserveLastStop = PreserveLastStopCheckbox.IsToggled; // Calculate and show the route. CalculateAndShowRoute(); }