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); }
//在绘制结束后,根据配置参数对图层进行相应操作 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); } } }
/// <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; } }
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); }
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"); }