Esempio n. 1
0
        /// <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));
        }
Esempio n. 4
0
        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();
                }
            }
        }
Esempio n. 5
0
        /// <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();
                }
            }
        }