/// <summary>Construct Mensuration sample control</summary> public Mensuration() { InitializeComponent(); _pointSymbol = LayoutRoot.Resources["PointSymbol"] as Symbols.Symbol; _lineSymbol = LayoutRoot.Resources["LineSymbol"] as Symbols.Symbol; _polygonSymbol = LayoutRoot.Resources["PolygonSymbol"] as Symbols.Symbol; _graphicsOverlay = MyMapView.GraphicsOverlays["graphicsOverlay"]; comboLinearUnit.ItemsSource = typeof(LinearUnits).GetTypeInfo().DeclaredProperties .Select(p => p.GetValue(null, null)) .Except(new LinearUnit[] { LinearUnits.NauticalMiles }).ToList(); comboLinearUnit.SelectedItem = LinearUnits.Meters; comboAngularUnit.ItemsSource = new AngularUnit[] { AngularUnits.Degrees, AngularUnits.Radians }; comboAngularUnit.SelectedItem = AngularUnits.Degrees; comboAreaUnit.ItemsSource = typeof(AreaUnits).GetTypeInfo().DeclaredProperties .Select(p => p.GetValue(null, null)).ToList(); comboAreaUnit.SelectedItem = AreaUnits.SquareMeters; var imageLayer = MyMapView.Map.Layers["ImageLayer"] as ArcGISTiledMapServiceLayer; _mensurationTask = new MensurationTask(new Uri(imageLayer.ServiceUri)); }
public MensurationImageService() { InitializeComponent(); draw = new Draw(MyMap); draw.DrawComplete += drawtool_DrawComplete; //draw.VertexAdded += new EventHandler<VertexAddedEventArgs>(drawtool_VertexAdded); drawGraphicsLayer = MyMap.Layers["DrawGraphicsLayer"] as GraphicsLayer; mensurationTask = new MensurationTask((MyMap.Layers["TiledImageServiceLayer"] as ArcGISTiledMapServiceLayer).Url); mensurationTask.AreaAndPerimeterCompleted += mt_TaskCompleted; mensurationTask.CentroidCompleted += mt_TaskCompleted; mensurationTask.DistanceAndAngleCompleted += mt_TaskCompleted; mensurationTask.HeightFromBaseAndTopCompleted += mt_TaskCompleted; mensurationTask.HeightFromBaseAndTopShadowCompleted += mt_TaskCompleted; mensurationTask.HeightFromTopAndTopShadowCompleted += mt_TaskCompleted; mensurationTask.PointCompleted += mt_TaskCompleted; mensurationTask.Failed += mt_TaskFailed; comboLinearUnit.ItemsSource = Enum <esriUnits> .GetNames(); comboAngularUnit.ItemsSource = Enum <DirectionUnit> .GetNames(); comboAreaUnit.ItemsSource = Enum <AreaUnit> .GetNames(); }
/// <summary>Construct Mensuration sample control</summary> public Mensuration() { InitializeComponent(); _pointSymbol = LayoutRoot.Resources["PointSymbol"] as Symbols.Symbol; _lineSymbol = LayoutRoot.Resources["LineSymbol"] as Symbols.Symbol; _polygonSymbol = LayoutRoot.Resources["PolygonSymbol"] as Symbols.Symbol; _graphicsOverlay = MyMapView.GraphicsOverlays["graphicsOverlay"]; comboLinearUnit.ItemsSource = typeof(LinearUnits).GetTypeInfo().DeclaredProperties .Select(p => p.GetValue(null, null)) .Except(new LinearUnit[] { LinearUnits.NauticalMiles } ).ToList(); comboLinearUnit.SelectedItem = LinearUnits.Meters; comboAngularUnit.ItemsSource = new AngularUnit[] { AngularUnits.Degrees, AngularUnits.Radians }; comboAngularUnit.SelectedItem = AngularUnits.Degrees; comboAreaUnit.ItemsSource = typeof(AreaUnits).GetTypeInfo().DeclaredProperties .Select(p => p.GetValue(null, null)).ToList(); comboAreaUnit.SelectedItem = AreaUnits.SquareMeters; var imageLayer = MyMapView.Map.Layers["ImageLayer"] as ArcGISTiledMapServiceLayer; _mensurationTask = new MensurationTask(new Uri(imageLayer.ServiceUri)); }
private async void OnMeasureCommand(object param) { if (_editState == EditState.None && _mapView != null && !_mapView.Editor.IsActive) { _lineSymbol = new SimpleLineSymbol() { Color = Colors.Red, Style = SimpleLineStyle.Solid, Width = 2 } as Symbol; _graphicsOverlay = _mapView.GraphicsOverlays["graphicsOverlay"]; // World Topo Map doesn't support mensuration //var temp = _mapView.Map.Layers["World Topo Map"]; var temp = _mapView.Map.Layers["MensurationMapServiceLayer"]; _mensurationTask = new MensurationTask(new Uri((temp as ArcGISTiledMapServiceLayer).ServiceUri)); // lets do a basic distance measure try { var line = await RequestUserShape(DrawShape.LineSegment, _lineSymbol) as Polyline; // Requesting shape cancelled if (line == null) { return; } var parameters = new MensurationLengthParameters() { AngularUnit = AngularUnits.Degrees, LinearUnit = LinearUnits.Meters }; var result = await _mensurationTask.DistanceAndAngleAsync( line.Parts.First().StartPoint, line.Parts.First().EndPoint, parameters); if (result.Distance != null) { ShowResults(result, "Measure results"); } else { MessageBox.Show("Error", "Mensuration Error"); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Mensuration Error"); } finally { _graphicsOverlay.Graphics.Clear(); } } }
/// <summary>Construct Mensuration sample control</summary> public Mensuration() { InitializeComponent(); _pointSymbol = layoutGrid.Resources["PointSymbol"] as Symbol; _lineSymbol = layoutGrid.Resources["LineSymbol"] as Symbol; _polygonSymbol = layoutGrid.Resources["PolygonSymbol"] as Symbol; comboLinearUnit.ItemsSource = typeof(LinearUnits).GetProperties().Select(p => p.GetValue(null, null)) .Except(new LinearUnit[] { LinearUnits.NauticalMiles }).ToList(); comboLinearUnit.SelectedItem = LinearUnits.Meters; comboAngularUnit.ItemsSource = new AngularUnit[] { AngularUnits.Degrees, AngularUnits.Radians }; comboAngularUnit.SelectedItem = AngularUnits.Degrees; comboAreaUnit.ItemsSource = typeof(AreaUnits).GetProperties().Select(p => p.GetValue(null, null)).ToList(); comboAreaUnit.SelectedItem = AreaUnits.SquareMeters; _mensurationTask = new MensurationTask(new Uri(imageServiceLayer.ServiceUri)); }
/// <summary>Construct Mensuration sample control</summary> public Mensuration() { InitializeComponent(); _pointSymbol = layoutGrid.Resources["PointSymbol"] as Symbol; _lineSymbol = layoutGrid.Resources["LineSymbol"] as Symbol; _polygonSymbol = layoutGrid.Resources["PolygonSymbol"] as Symbol; comboLinearUnit.ItemsSource = typeof(LinearUnits).GetProperties().Select(p => p.GetValue(null, null)) .Except(new LinearUnit[] { LinearUnits.NauticalMiles } ).ToList(); comboLinearUnit.SelectedItem = LinearUnits.Meters; comboAngularUnit.ItemsSource = new AngularUnit[] { AngularUnits.Degrees, AngularUnits.Radians }; comboAngularUnit.SelectedItem = AngularUnits.Degrees; comboAreaUnit.ItemsSource = typeof(AreaUnits).GetProperties().Select(p => p.GetValue(null, null)).ToList(); comboAreaUnit.SelectedItem = AreaUnits.SquareMeters; _mensurationTask = new MensurationTask(new Uri(imageServiceLayer.ServiceUri)); }
public MensurationImageService() { InitializeComponent(); draw = new Draw(MyMap); draw.DrawComplete += drawtool_DrawComplete; //draw.VertexAdded += new EventHandler<VertexAddedEventArgs>(drawtool_VertexAdded); drawGraphicsLayer = MyMap.Layers["DrawGraphicsLayer"] as GraphicsLayer; mensurationTask = new MensurationTask((MyMap.Layers["TiledImageServiceLayer"] as ArcGISTiledMapServiceLayer).Url); mensurationTask.AreaAndPerimeterCompleted += mt_TaskCompleted; mensurationTask.CentroidCompleted += mt_TaskCompleted; mensurationTask.DistanceAndAngleCompleted += mt_TaskCompleted; mensurationTask.HeightFromBaseAndTopCompleted += mt_TaskCompleted; mensurationTask.HeightFromBaseAndTopShadowCompleted += mt_TaskCompleted; mensurationTask.HeightFromTopAndTopShadowCompleted += mt_TaskCompleted; mensurationTask.PointCompleted += mt_TaskCompleted; mensurationTask.Failed += mt_TaskFailed; }
private async void OnMeasureCommand(object param) { if (_editState == EditState.None && _mapView != null && !_mapView.Editor.IsActive) { _lineSymbol = new SimpleLineSymbol() { Color = Colors.Red, Style = SimpleLineStyle.Solid, Width = 2 } as Symbol; _graphicsOverlay = _mapView.GraphicsOverlays["graphicsOverlay"]; // World Topo Map doesn't support mensuration //var temp = _mapView.Map.Layers["World Topo Map"]; var temp = _mapView.Map.Layers["MensurationMapServiceLayer"]; _mensurationTask = new MensurationTask(new Uri((temp as ArcGISTiledMapServiceLayer).ServiceUri)); // lets do a basic distance measure try { var line = await RequestUserShape(DrawShape.LineSegment, _lineSymbol) as Polyline; // Requesting shape cancelled if (line == null) return; var parameters = new MensurationLengthParameters() { AngularUnit = AngularUnits.Degrees, LinearUnit = LinearUnits.Meters }; var result = await _mensurationTask.DistanceAndAngleAsync( line.Parts.First().StartPoint, line.Parts.First().EndPoint, parameters); if (result.Distance != null) { ShowResults(result, "Measure results"); } else { MessageBox.Show("Error", "Mensuration Error"); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Mensuration Error"); } finally { _graphicsOverlay.Graphics.Clear(); } } }