Beispiel #1
0
        protected IMapPolygonLayer GetPolygonLayer()
        {
            IMapPolygonLayer polygonLayer = null;

            foreach (ILayer item in _map.MapFrame.DrawingLayers)
            {
                if (item.LegendText == "Polygon")
                {
                    polygonLayer = item as IMapPolygonLayer;
                    break;
                }
            }
            if (polygonLayer == null)
            {
                polygonLayer            = new MapPolygonLayer();
                polygonLayer.LegendText = "Polygon";
                polygonLayer.Symbolizer = GIS.FrameWork.ROIConfigure.polygonSymbolizer;
                if (_map.MapFrame.DrawingLayers.Count > 0 && _map.MapFrame.DrawingLayers[0].LegendText == "ROI")
                {
                    _map.MapFrame.DrawingLayers.Insert(1, polygonLayer);
                }
                else
                {
                    _map.MapFrame.DrawingLayers.Insert(0, polygonLayer);
                }
            }
            return(polygonLayer);
        }
Beispiel #2
0
 //在绘制结束后,根据配置参数对图层进行相应操作
 protected void ProcessPolygon(IMapPolygonLayer tempLayer)
 {
     if (PolygonCanIn)
     {
         IMapPolygonLayer polygonLayer = GetPolygonLayer();
         if (WillClearPolygons)
         {
             polygonLayer.DataSet.Features.Clear();
         }
         foreach (IFeature tempFeature in tempLayer.DataSet.Features)
         {
             polygonLayer.DataSet.Features.Add(tempFeature);
         }
         if (OperatedFunc != null)
         {
             OperatedFunc(polygonLayer);
         }
     }
     else
     {
         _map.MapFrame.DrawingLayers.Add(tempLayer);
         _map.MapFrame.DrawingLayers.Remove(tempLayer);
         if (OperatedFunc != null)
         {
             OperatedFunc(tempLayer);
         }
     }
 }
Beispiel #3
0
        /// <summary>
        /// This function stores the selected polygons in the
        /// map from the polygon layer.
        /// </summary>
        private void getPolygons(IMapPolygonLayer polyLayer)
        {
            polygons.Features.Clear();

            if (polyLayer.IsVisible && polyLayer.Selection.Count > 0)
            {
                foreach (var f in polyLayer.Selection.ToFeatureList())
                {
                    polygons.Features.Add(f);
                }

                polygons.Projection = App.Map.Projection;
            }
        }
Beispiel #4
0
        protected override void OnMouseDown(GeoMouseArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                _startPoint   = e.Location;
                _currentPoint = _startPoint;

                //_map.IsBusy = true;
                if (_points.Count == 1)
                {
                    _isEnabled = false;
                    _points.Add(e.Location);

                    ////write in coordinate points
                    _coordinatePoints.Add(_map.PixelToProj(new System.Drawing.Point(_points[0].X, _points[0].Y)));
                    _coordinatePoints.Add(_map.PixelToProj(new System.Drawing.Point(_points[0].X, _points[1].Y)));
                    _coordinatePoints.Add(_map.PixelToProj(new System.Drawing.Point(_points[1].X, _points[1].Y)));
                    _coordinatePoints.Add(_map.PixelToProj(new System.Drawing.Point(_points[1].X, _points[0].Y)));
                    _coordinatePoints.Add(_map.PixelToProj(new System.Drawing.Point(_points[0].X, _points[0].Y)));

                    LinearRing _linearRing = new LinearRing(_coordinatePoints.ToArray());
                    Polygon    polygon     = new Polygon(_linearRing);

                    IMapPolygonLayer polygonLayer = GetPolygonLayer();
                    polygonLayer.DataSet.AddFeature(polygon as IGeometry);

                    _points.Clear();
                    _coordinatePoints.Clear();
                    _map.Refresh();
                }
                else if (_points.Count == 0)
                {
                    _isEnabled = true;
                    _points.Add(e.Location);
                }
            }
            else if (e.Button == MouseButtons.Right)
            {
                this.Enabled = false;
                string bufferType = "PolygonBuffer";
                GIS.Common.Dialogs.Buffer polygonBuffer = new GIS.Common.Dialogs.Buffer(bufferType);
                polygonBuffer.ShowDialog();
                _map.FunctionMode = FunctionMode.Pan;
            }
            base.OnMouseDown(e);
        }
Beispiel #5
0
 private void polygonBuffer()
 {
     foreach (ILayer item in _map.MapFrame.DrawingLayers)
     {
         if (item.LegendText == "Polygon")
         {
             IMapPolygonLayer polygonLayer = item as IMapPolygonLayer;
             ILayer           layer        = bufferLayer();
             for (int i = 0; i < polygonLayer.DataSet.Features.Count; i++)
             {
                 (layer as IMapPolygonLayer).DataSet.AddFeature(polygonLayer.DataSet.Features[i].Geometry.Buffer(_distance));
             }
             _map.Refresh();
             break;
         }
     }
 }
        public void SetLayers(int featureLayer = 0, int extentLayer = 0)
        {
            var pointLayers = _map.GetPointLayers().Where(c => c.DataSet.Name != null).ToList();

            if (pointLayers.Count() > 0 && _map.GetPolygonLayers().Count() > 0)
            {
                TargetFeatureLayer = pointLayers[featureLayer];
                TargetPolygonLayer = _map.GetPolygonLayers()[extentLayer];

                if (TargetPolygonLayer.Selection.Count <= 0)
                {
                    TargetPolygonLayer = GetSelectedPolygonLayer();
                }

                if (TargetFeatureLayer != null && TargetPolygonLayer != null)
                {
                    var featureDataset = TargetFeatureLayer.DataSet;

                    if (TargetPolygonLayer.Selection.Count > 0)
                    {
                        this._selectedDataset = featureDataset.CopySubset(featureDataset.SelectIndices(TargetPolygonLayer.Selection.ToFeatureSet().Extent));
                        this._extent = TargetPolygonLayer.Selection.ToFeatureSet().Extent;
                        this._clip = new Clip(TargetPolygonLayer.Selection.ToFeatureSet());
                    }
                    else
                    {

                        this._selectedDataset = featureDataset.CopySubset(featureDataset.SelectIndices(TargetPolygonLayer.Extent));
                        this._extent = TargetPolygonLayer.Extent;
                        this._clip = new Clip(TargetPolygonLayer.DataSet);
                    }

                    UpdateField();
                }
            }
        }
        private void SaveProductFileClick(object sender, EventArgs e, IMapPolygonLayer layer)
        {
            var polygonFile = Path.Combine(_field.Folder, "product_polygon.shp");

            layer.DataSet.SaveAs(polygonFile, true);

            MessageBox.Show("File Saved");
        }