Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
        }