private void LoadSystemLayers() { //浮动工具栏 IFloatToolBarLayer toolbar = new FloatToolBarLayer(); toolbar.ToolItemClicked = new Action <FloatToolItem>(FloatToolItemClick); toolbar.IsAutoHide = false; FloatToolItem[] items = GetFloatToolItems(); toolbar.ToolItems.AddRange(items); _canvas.LayerContainer.Layers.Add(toolbar as GeoDo.RSS.Core.DrawEngine.ILayer); _floatToolBar = toolbar as FloatToolBarLayer; //AOI容器 _aoiContainer = new AOIContainerLayer(); _aoiContainer.Color = Color.Red; _aoiContainer.LineWidth = 1; _aoiContainer.IsOnlyOneAOI = !_ismultiAoi; _canvas.LayerContainer.Layers.Add(_aoiContainer as GeoDo.RSS.Core.DrawEngine.ILayer); //SelectedAOI容器 _selectedAOILayer = new SelectedAOILayer(); _selectedAOILayer.Color = Color.Yellow; _selectedAOILayer.LineWidth = 1; _canvas.LayerContainer.Layers.Add(_selectedAOILayer as GeoDo.RSS.Core.DrawEngine.ILayer); //蒙板 ILayer lyr = new MaskLayer(); _canvas.LayerContainer.Layers.Add(lyr); }
public string MutiRegionsClip(string file, GeoDo.RSS.Core.VectorDrawing.AOIContainerLayer aoiContainer, string savePath) { _aoiContainer = aoiContainer; using (IRasterDataProvider raster = GeoDataDriver.Open(file) as IRasterDataProvider) { _resolutionX = raster.ResolutionX; _resolutionY = raster.ResolutionY; _fileSize = new Size(raster.Width, raster.Height); _fileEnvelope = raster.CoordEnvelope; _activeSpatialRef = raster.SpatialRef; _activeCoordType = raster.CoordType; raster.Dispose(); } GeoDo.RSS.Core.DrawEngine.CoordEnvelope corEnvelope = null; corEnvelope = GetGeoRect(); //获取多个aoi的外接矩形 evp.MaxX = corEnvelope.MaxX; evp.MaxY = corEnvelope.MaxY; evp.MinX = corEnvelope.MinX; evp.MinY = corEnvelope.MinY; BlockDefWithAOI outEnvelope; Size size; List <BlockDefWithAOI> blockList = new List <BlockDefWithAOI>(); GetArgs(out outEnvelope, out size); envelopes = new BlockDefWithAOI[] { outEnvelope }; blockList.AddRange(envelopes); blockList[0].AOIIndexes = GetIndexes(); //获得多个aoi的Index OutDir = savePath; string[] put = RasterClipT(file, blockList.ToArray(), OutDir, "Cut"); return(put[0]); }
private void UCImageControl_Load(object sender, EventArgs e) { _aoiGCPContainer = new AOIContainerLayer(); _aoiGCPContainer.IsAllowEdit = false; _aoiGCPContainer.Color = Color.LightGreen; _aoiGCPContainer.LineWidth = 2; canvasHost1.Canvas.LayerContainer.Layers.Add(_aoiGCPContainer as GeoDo.RSS.Core.DrawEngine.ILayer); _aoiContainer = new AOIContainerLayer(); _aoiContainer.IsAllowEdit = true; _aoiContainer.IsOnlyOneAOI = true; _aoiContainer.Color = Color.Red; _aoiContainer.LineWidth = 1; _aoiContainer.AOIGeometryIsUpdated += new AOIGeometryIsUpdatedHandler ( (sder, geometry) => { UpdateDrawedAOI(); if (AOIIsChanged != null) { AOIIsChanged(this, null); } } ); canvasHost1.Canvas.LayerContainer.Layers.Add(_aoiContainer as GeoDo.RSS.Core.DrawEngine.ILayer); canvasHost1.Canvas.CurrentViewControl = _aoiContainer as IControlLayer; canvasHost1.Canvas.Refresh(enumRefreshType.All); }
private void button15_Click(object sender, EventArgs e) { if (_aoiLayer == null) { _aoiLayer = new AOIContainerLayer(); _aoiLayer.Color = Color.Red; _canvas.LayerContainer.Layers.Add(_aoiLayer as GeoDo.RSS.Core.DrawEngine.ILayer); } IPencilToolLayer layer = new PencilToolLayer(); layer.PencilType = enumPencilType.FreeCurve; layer.PencilIsFinished = (result) => { //ptfs = result.GeoPoints; //pts = result.RasterPoints; _result = result; _aoiLayer.AddAOI(_result); }; _canvas.CurrentViewControl = layer; }
void item_Click(object sender, EventArgs e) { if (_session.SmartWindowManager.ActiveCanvasViewer == null) { return; } if (_session.SmartWindowManager.ActiveCanvasViewer.AOIContainerLayer == null) { return; } string name = (sender as RadMenuItem).Tag.ToString(); Feature fet = (new AOIShortcutOfAdmin()).GetFeatureByName(name); if (fet == null) { return; } IAOIContainerLayer container = _session.SmartWindowManager.ActiveCanvasViewer.AOIContainerLayer; container.AddAOI(fet); }
public string ExractRect(string file, GeoDo.RSS.Core.VectorDrawing.AOIContainerLayer aoiContainer, string savePath, string regionName) { _aoiContainer = aoiContainer; using (IRasterDataProvider raster = GeoDataDriver.Open(file) as IRasterDataProvider) { _resolutionX = raster.ResolutionX; _resolutionY = raster.ResolutionY; _fileSize = new Size(raster.Width, raster.Height); _fileEnvelope = raster.CoordEnvelope; _activeSpatialRef = raster.SpatialRef; _activeCoordType = raster.CoordType; raster.Dispose(); } GeoDo.RSS.Core.DrawEngine.CoordEnvelope corEnvelope = null; corEnvelope = GetGeoRect(); //获取多个aoi的外接矩形 evp.MaxX = corEnvelope.MaxX + 2.0f; evp.MaxY = corEnvelope.MaxY + 2.0f; evp.MinX = corEnvelope.MinX - 2.0f; evp.MinY = corEnvelope.MinY - 2.0f; string filename = ExtractFile(file, 0, evp, regionName, savePath); return(filename); }
void UCImageControl_Disposed(object sender, EventArgs e) { if (_aoiContainer != null) { (_aoiContainer as AOIContainerLayer).Dispose(); _aoiContainer = null; } if (_aoiGCPContainer != null) { (_aoiGCPContainer as AOIContainerLayer).Dispose(); _aoiGCPContainer = null; } if (_vectorHostLayer != null) { (_vectorHostLayer as VectorHostLayer).Dispose(); _vectorHostLayer = null; } if (canvasHost1 != null) { canvasHost1.Canvas.Dispose(); canvasHost1.Dispose(); } }
public void Dispose() { _rightMouseMenu = null; _rightMouseNormalMenus = null; _rightMousePencilToolMenu = null; _contextMenuHandlers.Clear(); if (_canvas != null) { _canvas.Container.KeyUp -= new KeyEventHandler(Container_KeyUp); _canvas.Container.MouseUp -= new MouseEventHandler(Container_MouseUp); _canvas = null; } if (_aoiContainer != null) { (_aoiContainer as AOIContainerLayer).Dispose(); _aoiContainer = null; } if (_selectedAOILayer != null) { (_selectedAOILayer as SelectedAOILayer).Dispose(); _selectedAOILayer = null; } if (_session != null) { _session = null; } if (_contextMenuHandler != null) { (_contextMenuHandler as CanvasContextMenuHandler).HandleRemoveAll(); _contextMenuHandler = null; } if (_toolbarManager != null) { _toolbarManager.Close(); _toolbarManager = null; } }
void UCSimpleMapControl_Disposed(object sender, EventArgs e) { if (_objHosts != null && _objHosts.Count != 0) { foreach (string key in _objHosts.Keys) { ISimpleVectorObjectHost host = _objHosts[key]; if (host != null) { host.Dispose(); } } _objHosts.Clear(); } if (_aoiContainer != null) { (_aoiContainer as AOIContainerLayer).Dispose(); _aoiContainer = null; } if (_vectorHostLayer != null) { (_vectorHostLayer as VectorHostLayer).Dispose(); _vectorHostLayer = null; } if (_geoGridLayer != null) { _geoGridLayer.Dispose(); _geoGridLayer = null; } if (canvasHost1 != null) { canvasHost1.Canvas.Dispose(); canvasHost1.Dispose(); //canvasHost1 = null; } }
public CanvasContextMenuHandler(ISmartSession session, IAOIContainerLayer aoiContainer, ICanvasViewerMenuHandlerManager handlerManager) { _session = session; _aoiContainer = aoiContainer; _handlerManager = handlerManager; }
public AOIProvider(ICanvas canvas) { _canvas = canvas; _aoiContainer = _canvas.LayerContainer.GetByName("感兴趣区域") as IAOIContainerLayer; _selectAOILayer = _canvas.LayerContainer.GetByName("选中的感兴趣区域") as ISelectedAOILayer; }