private void SolveButton_Click(object sender, EventArgs e)
{
List<AttributeParameter> aps = new List<AttributeParameter>();
AttributeParameter ap = GetAttributeParameterValue(AttributeParameterValues3.SelectionBoxItem.ToString().Trim());
if (ap != null)
aps.Add(ap);
GenerateBarriers();
try
{
RouteServiceAreaParameters routeParams = new RouteServiceAreaParameters()
{
Barriers = pointBarriers.Count > 0 ? pointBarriers : null,
PolylineBarriers = polylineBarriers.Count > 0 ? polylineBarriers : null,
PolygonBarriers = polygonBarriers.Count > 0 ? polygonBarriers : null,
Facilities = facilitiesGraphicsLayer.Graphics,
//AttributeParameterValues = aps,
DefaultBreaks = DefaultBreaks.Text,
ExcludeSourcesFromPolygons = ExcludeSourcesFromPolygons.Text,
MergeSimilarPolygonRanges = MergeSimilarPolygonRanges.IsChecked.HasValue ? MergeSimilarPolygonRanges.IsChecked.Value : false,
OutputLines = GetOutputLines(OutputLines3.SelectionBoxItem.ToString()),
OutputPolygons = GetOutputPolygons(OutputPolygons.SelectionBoxItem.ToString()),
OverlapLines = OverlapLines3.IsChecked.HasValue ? OverlapLines3.IsChecked.Value : false,
OverlapPolygons = OverlapPolygons3.IsChecked.HasValue ? OverlapPolygons3.IsChecked.Value : false,
SplitLineAtBreaks = SplitLinesAtBreaks.IsChecked.HasValue ? SplitLinesAtBreaks.IsChecked.Value : false,
SplitPolygonsAtBreaks = SplitPolygonsAtBreaks.IsChecked.HasValue ? SplitPolygonsAtBreaks.IsChecked.Value : false,
TravelDirection = GetFacilityTravelDirections(TravelDirections3.SelectionBoxItem.ToString().Trim()),
TrimOuterPolygon = TrimOuterPolygons.IsChecked.HasValue ? TrimOuterPolygons.IsChecked.Value : false,
TrimPolygonDistance = string.IsNullOrEmpty(TrimPolygonDistance.Text) ? 0 : double.Parse(TrimPolygonDistance.Text),
TrimPolygonDistanceUnits = GetUnits(TrimPolygonDistanceUnits.SelectedItem.ToString().Trim()),
ReturnFacilities = ReturnFacilities3.IsChecked.HasValue ? ReturnFacilities3.IsChecked.Value : false,
ReturnBarriers = ReturnBarriers3.IsChecked.HasValue ? ReturnBarriers3.IsChecked.Value : false,
ReturnPolylineBarriers = ReturnPolylineBarriers3.IsChecked.HasValue ? ReturnPolylineBarriers3.IsChecked.Value : false,
ReturnPolygonBarriers = ReturnPolygonBarriers3.IsChecked.HasValue ? ReturnPolygonBarriers3.IsChecked.Value : false,
OutSpatialReference = string.IsNullOrEmpty(OutputSpatialReference3.Text) ? MyMap.SpatialReference : new SpatialReference(int.Parse(OutputSpatialReference3.Text)),
AccumulateAttributes = string.IsNullOrEmpty(AccumulateAttributeNames3.Text) ? null : AccumulateAttributeNames3.Text.Split(','),
ImpedanceAttribute = string.IsNullOrEmpty(ImpedanceAttributeName3.Text) ? string.Empty : ImpedanceAttributeName3.Text,
RestrictionAttributes = string.IsNullOrEmpty(RestrictionAttributeNames3.Text) ? null : RestrictionAttributeNames3.Text.Split(','),
RestrictUTurns = GetRestrictUTurns(RestrictUTurns3.SelectionBoxItem.ToString()),
OutputGeometryPrecision = string.IsNullOrEmpty(OutputGeometryPrecision3.Text) ? 0 : double.Parse(OutputGeometryPrecision3.Text),
OutputGeometryPrecisionUnits = GetUnits(OutputGeometryPrecisionUnits3.SelectionBoxItem.ToString().Trim()),
DoNotLocateOnRestrictedElements = DoNotLocateOnRestrictedElementsCheckBox.IsChecked.HasValue ? DoNotLocateOnRestrictedElementsCheckBox.IsChecked.Value : false,
};
if (myRouteTask.IsBusy)
myRouteTask.CancelAsync();
myRouteTask.SolveServiceAreaAsync(routeParams);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + '\n' + ex.StackTrace);
}
}