public static IGeometry GetSelectGeometry(IMap pMap) { if (pMap == null) { return(null); } if (pMap.SelectionCount == 0) { return(null); } IGeometryBag pGeometryBag = new GeometryBagClass(); IGeometryCollection pGeomtryCol = (IGeometryCollection)pGeometryBag; IEnumFeature pEnumFeature = (IEnumFeature)pMap.FeatureSelection; IFeature pFeature = pEnumFeature.Next(); object obj = System.Reflection.Missing.Value; while (pFeature != null) { pGeomtryCol.AddGeometry(pFeature.ShapeCopy, ref obj, ref obj); pFeature = pEnumFeature.Next(); } pGeometryBag.Project(pMap.SpatialReference); return((IGeometry)pGeometryBag); }
private void buttonOk_Click(object sender, EventArgs e) { if (comboBoxELayers.Text.Trim() == "" || comboBoxELayers.Text.Trim() == "点击选择查询图层") { System.Windows.Forms.MessageBox.Show("请先选择图层!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } List <IGeometry> lstGeometrys = new List <IGeometry>(); IGeometryBag pGeometryBag = new GeometryBagClass(); IGeometryCollection pGeomtryCol = (IGeometryCollection)pGeometryBag; IMap pMap = m_pMapControl.Map; object obj = System.Reflection.Missing.Value; //IGeometry pTempGeo = null; if (pMap.SelectionCount < 1) { System.Windows.Forms.MessageBox.Show("请先选择要素!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } this.Visible = false; m_pMapControl.CurrentTool = null; ChangeSelectAble(true, ""); if (this.WriteLog) { Plugin.LogTable.Writelog(this.Text);//xisheng 日志记录 0928; } IActiveView pAv = pMap as IActiveView; ISelection pSelection = pMap.FeatureSelection; IEnumFeature pEnumFea = pSelection as IEnumFeature; IFeature pFea = pEnumFea.Next(); while (pFea != null) { if (pFea.Shape != null) { lstGeometrys.Add(pFea.Shape); pGeomtryCol.AddGeometry(pFea.Shape, ref obj, ref obj); } pFea = pEnumFea.Next(); } pGeometryBag.Project(pMap.SpatialReference); if (m_frmQuery == null) { m_frmQuery = new frmQuery(_pMapControl, m_enumQueryMode); m_frmQuery.Owner = m_mainFrm; m_frmQuery.FormClosed += new FormClosedEventHandler(frmQuery_FormClosed); } ///ZQ 2011 1129 已经不再使用Element绘制 //清除上次的所有元素 //(m_pMapControl.Map as IGraphicsContainer).DeleteAllElements(); if (m_frmBufferSet != null) { SysCommon.ScreenDraw.list.Remove(m_frmBufferSet.BufferSetAfterDraw); m_frmBufferSet.setBufferGeometry(null); m_frmBufferSet = null; } m_frmBufferSet = new frmBufferSet(pGeometryBag as IGeometry, m_pMapControl.Map, m_frmQuery); m_frmBufferSet.FormClosed += new FormClosedEventHandler(frmBufferSet_FormClosed); IGeometry pGeometry = m_frmBufferSet.GetBufferGeometry(); if (pGeometry == null || m_frmBufferSet.Res == false) { this.Close(); return; } // m_frmQuery.Show(); ///ZQ 20111119 modify // m_frmQuery.FillData(m_pMapControl.ActiveView.FocusMap, pGeometry,m_frmBufferSet.pesriSpatialRelEnum); //更改查询结果显示方式 //ygc 2012-8-10 QueryBar.m_pMapControl = _pMapControl; QueryBar.EmergeQueryData(m_pMapControl.ActiveView.FocusMap, pGeometry, m_frmBufferSet.pesriSpatialRelEnum); try { DevComponents.DotNetBar.Bar pBar = QueryBar.Parent.Parent as DevComponents.DotNetBar.Bar; if (pBar != null) { pBar.AutoHide = false; //pBar.SelectedDockTab = 1; int tmpindex = pBar.Items.IndexOf("dockItemDataCheck"); pBar.SelectedDockTab = tmpindex; } } catch { } this.Close(); }