// Accept user click point and select the underlying target polygon
        private async Task SelectTargetGeometryAsync()
        {
            txtInstruct.Text = "Click to select a target geometry";
            _coordinateOverlay.Graphics.Clear();
            _targetOverlay.Graphics.Clear();

            Graphic graphic = null;

            while (graphic == null)
            {
                var point = await MyMapView.Editor.RequestPointAsync();

                graphic = await _graphicsOverlay.HitTestAsync(MyMapView, MyMapView.LocationToScreen(point));

                if (graphic == null)
                {
                    continue;
                }

                _targetOverlay.Graphics.Add(graphic);

                var poly = graphic.Geometry as Polygon;
                foreach (var coord in poly.Parts.First().GetPoints())
                {
                    _targetOverlay.Graphics.Add(new Graphic(coord, _vertexSymbol));
                }
            }
        }
        private async Task SelectParcelForOffsetAsync()
        {
            ResetButton.IsEnabled = false;

            try
            {
                _offsetOverlay.Graphics.Clear();

                var pointGeom = await MyMapView.Editor.RequestPointAsync();

                var screenPnt = MyMapView.LocationToScreen(pointGeom);

                _selectedParcelGraphic = await
                                         _parcelOverlay.HitTestAsync(MyMapView, screenPnt);

                DoOffset();
            }
            catch (TaskCanceledException) { }
            catch (Exception ex)
            {
                var _x = new MessageDialog(ex.Message).ShowAsync();
            }

            ResetButton.IsEnabled = true;
        }
Esempio n. 3
0
        // Hittest the graphics layer and show the map tip for the selected graphic
        private async void MyMapView_MapViewTapped(object sender, MapViewInputEventArgs e)
        {
            try
            {
                _graphicsOverlay.ClearSelection();

                var graphic = await _graphicsOverlay.HitTestAsync(MyMapView, e.Position);

                if (graphic != null)
                {
                    graphic.IsSelected = true;
                    MapView.SetViewOverlayAnchor(_mapTip, e.Location);
                    _mapTip.DataContext = graphic;
                    _mapTip.Visibility  = Visibility.Visible;
                }
                else
                {
                    _mapTip.Visibility = Visibility.Collapsed;
                }
            }
            catch
            {
                _mapTip.Visibility = Visibility.Collapsed;
            }
        }
Esempio n. 4
0
        private async Task SelectParcelForOffsetAsync()
        {
            try
            {
                ResetButton.IsEnabled = false;
                _offsetOverlay.Graphics.Clear();

                var pointGeom = await MyMapView.Editor.RequestPointAsync();

                var screenPnt = MyMapView.LocationToScreen(pointGeom);

                _selectedParcelGraphic = await
                                         _parcelOverlay.HitTestAsync(MyMapView, screenPnt);

                DoOffset();
            }
            catch (TaskCanceledException) { }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Sample Error");
            }
            finally
            {
                ResetButton.IsEnabled = true;
            }
        }
Esempio n. 5
0
        private async void mapView1_MapViewTapped(object sender, Esri.ArcGISRuntime.Controls.MapViewInputEventArgs e)
        {
            Graphic hitGraphic = await _addressOverlay.HitTestAsync(MyMapView, e.Position);

            if (hitGraphic != null)
            {
                if (maptip.Visibility == Windows.UI.Xaml.Visibility.Collapsed)
                {
                    MapTipGraphic = hitGraphic;
                    RenderMapTip();
                }
                else
                {
                    maptip.Visibility  = Windows.UI.Xaml.Visibility.Collapsed;
                    maptip.DataContext = null;
                    MapTipGraphic      = null;
                }
            }
        }
Esempio n. 6
0
        private async void MouseRightButtonUp(object parameter)
        {
            Point    curPoint = Mouse.GetPosition(tagView as FrameworkElement);
            MapPoint tagPoint = tagView.ScreenToLocation(curPoint);

            _graphicsOverlay = tagView.GraphicsOverlays["drawGraphicsOverlay"];
            var ga = await _graphicsOverlay.HitTestAsync(tagView, curPoint);

            if (ga != null)
            {
                if (ga.Geometry.GeometryType == GeometryType.Point)
                {
                    drawPointGraphic = ga;
                    drawpointX       = (drawPointGraphic.Geometry as MapPoint).X;
                    drawpointY       = (drawPointGraphic.Geometry as MapPoint).Y;
                    drawpointZ       = (drawPointGraphic.Geometry as MapPoint).Z;

                    if (pointwinshowing == false)
                    {
                        pointWin        = new PointToolWin();
                        pointwinshowing = true;
                        pointWin.ShowDialog();
                    }
                }
                if (ga.Geometry.GeometryType == GeometryType.Polyline)
                {
                    drawLineGraphic = ga;
                    linegraphictext = drawLineGraphic.Attributes["Label"] as string;
                    linewidth       = (drawLineGraphic.Symbol as SimpleLineSymbol).Width;
                    Esri.ArcGISRuntime.Geometry.PointCollection tagcol = new Esri.ArcGISRuntime.Geometry.PointCollection();
                    foreach (var part in (drawLineGraphic.Geometry as Polyline).Parts)
                    {
                        for (int i = 0; i < part.Count; i++)
                        {
                            var linepart = part.ElementAt(i);
                            tagcol.Add(linepart.StartPoint);
                            if (i == (part.Count - 1))
                            {
                                tagcol.Add(linepart.EndPoint);
                            }
                            drawLineZ = linepart.StartPoint.Z;
                        }
                    }
                    Linepointcollec = tagcol;

                    if (linewinshowing == false)
                    {
                        LineWin        = new LineToolWin();
                        linewinshowing = true;
                        LineWin.ShowDialog();
                    }
                }
                if (ga.Geometry.GeometryType == GeometryType.Polygon)
                {
                    drawPolygonGraphic = ga;
                    polygongraphictext = drawPolygonGraphic.Attributes["Label"] as string;
                    Esri.ArcGISRuntime.Geometry.PointCollection tagcol = new Esri.ArcGISRuntime.Geometry.PointCollection();
                    foreach (var part in (drawPolygonGraphic.Geometry as Polygon).Parts)
                    {
                        for (int i = 0; i < part.Count; i++)
                        {
                            var Polygonpart = part.ElementAt(i);
                            tagcol.Add(Polygonpart.StartPoint);
                            if (i == (part.Count - 1))
                            {
                                tagcol.Add(Polygonpart.EndPoint);
                            }
                            drawPolygonZ = Polygonpart.StartPoint.Z;
                        }
                    }
                    Polygonpointcollec = tagcol;

                    if (Polygonwinshowing == false)
                    {
                        PolygonWin        = new PolygonToolWin();
                        Polygonwinshowing = true;
                        PolygonWin.ShowDialog();
                    }
                }
            }
        }
Esempio n. 7
0
        private  async void MouseRightButtonUp(object parameter)
        {
            Point curPoint = Mouse.GetPosition(tagView as FrameworkElement);
            MapPoint tagPoint = tagView.ScreenToLocation(curPoint);
            _graphicsOverlay = tagView.GraphicsOverlays["drawGraphicsOverlay"];
            var ga = await _graphicsOverlay.HitTestAsync(tagView, curPoint);
            if (ga != null)
            {
                if(ga.Geometry.GeometryType==GeometryType.Point)
                {
                    drawPointGraphic = ga;
                    drawpointX = (drawPointGraphic.Geometry as MapPoint).X;
                    drawpointY = (drawPointGraphic.Geometry as MapPoint).Y;
                    drawpointZ = (drawPointGraphic.Geometry as MapPoint).Z;

                    if(pointwinshowing==false)
                    {
                        pointWin = new PointToolWin();
                        pointwinshowing = true;
                        pointWin.ShowDialog();
                    }
                   
                }
                if (ga.Geometry.GeometryType == GeometryType.Polyline)
                {
                    drawLineGraphic = ga;
                    linegraphictext = drawLineGraphic.Attributes["Label"] as string;
                    linewidth = (drawLineGraphic.Symbol as SimpleLineSymbol).Width;
                    Esri.ArcGISRuntime.Geometry.PointCollection tagcol = new Esri.ArcGISRuntime.Geometry.PointCollection();
                    foreach (var part in (drawLineGraphic.Geometry as Polyline).Parts)
                    {
                        for(int i=0;i<part.Count;i++)
                        {
                            var linepart = part.ElementAt(i);
                            tagcol.Add(linepart.StartPoint);
                            if(i==(part.Count-1)) tagcol.Add(linepart.EndPoint);
                            drawLineZ = linepart.StartPoint.Z;
                        }
                    }
                    Linepointcollec = tagcol;

                    if(linewinshowing==false)
                    {
                        LineWin = new LineToolWin();
                        linewinshowing = true;
                        LineWin.ShowDialog();

                    }
                    
                }
                if (ga.Geometry.GeometryType == GeometryType.Polygon)
                {
                    drawPolygonGraphic = ga;
                    polygongraphictext = drawPolygonGraphic.Attributes["Label"] as string;
                    Esri.ArcGISRuntime.Geometry.PointCollection tagcol = new Esri.ArcGISRuntime.Geometry.PointCollection();
                    foreach (var part in (drawPolygonGraphic.Geometry as Polygon).Parts)
                    {
                        for (int i = 0; i < part.Count; i++)
                        {
                            var Polygonpart = part.ElementAt(i);
                            tagcol.Add(Polygonpart.StartPoint);
                            if (i == (part.Count - 1)) tagcol.Add(Polygonpart.EndPoint);
                            drawPolygonZ = Polygonpart.StartPoint.Z;
                        }
                    }
                    Polygonpointcollec = tagcol;

                    if(Polygonwinshowing==false)
                    {
                        PolygonWin = new PolygonToolWin();
                        Polygonwinshowing = true;
                        PolygonWin.ShowDialog();
                    }                   
                }
            }
        }
Esempio n. 8
0
        private async void mapView1_MapViewTapped(object sender, Esri.ArcGISRuntime.Controls.MapViewInputEventArgs e)
        {
            if (MyMapView.Editor.IsActive || _layer == null)
            {
                return;
            }
            _layer.ClearSelection();

            Graphic hitGraphic = await _stopsOverlay.HitTestAsync(MyMapView, e.Position);

            var features = await _layer.HitTestAsync(MyMapView, e.Position);

            if (hitGraphic != null)
            {
                FlyoutBase.ShowAttachedFlyout((FrameworkElement)sender);
                return;
            }

            if (features != null)
            {
                string message = null;

                MyMapView.Overlays.Items.Clear();
                try
                {
                    if (!features.Any())
                    {
                        return;
                    }


                    var featureID = features.FirstOrDefault();
                    _layer.SelectFeatures(new long[] { featureID });
                    var feature = (GeodatabaseFeature)await _layer.FeatureTable.QueryAsync(featureID);

                    message = _layer.DisplayName;
                    for (int i = 0; i < feature.Attributes.Values.Count(); i++)
                    {
                        if (feature.Attributes.Keys.ToArray()[i].ToString() != "OBJECTID")
                        {
                            message += "\n" + feature.Attributes.Keys.ToArray()[i] + ": " + feature.Attributes.Values.ToArray()[i];
                        }
                    }
                }
                catch (Exception ex)
                {
                    message = ex.Message;
                }
                if (!string.IsNullOrWhiteSpace(message))
                {
                    var result  = message;
                    var overlay = new ContentControl()
                    {
                        HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Top
                    };
                    overlay.Template    = LayoutRoot.Resources["PopUpTipTemplate"] as ControlTemplate;
                    overlay.DataContext = result;
                    MapView.SetViewOverlayAnchor(overlay, e.Location);
                    MyMapView.Overlays.Items.Add(overlay);
                }
            }
        }