Ejemplo n.º 1
0
        private void FTtreeList_Click(object sender, EventArgs e)
        {
            DevExpress.XtraTreeList.TreeListMultiSelection treelistSelect = this.FTtreeList.Selection;

            if (treelistSelect.Count == 0)
            {
                FtAttrView.Clear();
                return;
            }
            TreeListNode node = treelistSelect[0];

            if (node.ParentNode == null)
            {
                FtAttrView.Clear();
                return;
            }

            m_pMap.ClearSelection();
            //m_pActiveView.Refresh();

            string LayerName = node.ParentNode.GetDisplayText("FtName").ToString();

            ILayer pLayer = Hy.Common.Utility.Esri.MapOperAPI.GetLayerFromMapByName(m_pMap, LayerName);

            if (pLayer == null)
            {
                return;
            }
            IFeatureLayer pFtLayer = (IFeatureLayer)pLayer;
            IFeatureClass pFtCls   = pFtLayer.FeatureClass;

            IFields pFields = pFtCls.Fields;
            int     nIndex  = pFields.FindField("BSM");

            if (nIndex == -1)
            {
                return;
            }

            IQueryFilter pQueryFilter = new QueryFilterClass();
            IField       pField       = pFields.get_Field(nIndex);


            bool bTest = GetTypeByEsriField(pField.Type);

            if (bTest == false)  //整形
            {
                pQueryFilter.WhereClause = "BSM = " + node.GetDisplayText("FtName").ToString();
            }
            else
            {
                pQueryFilter.WhereClause = "BSM = '" + node.GetDisplayText("FtName").ToString() + "'";
            }

            IFeatureCursor FtCur = pFtCls.Search(pQueryFilter, true);
            IFeature       pFt   = FtCur.NextFeature();

            if (pFt != null)
            {
                InitAttrTreeList(pFtCls, pFt);
                m_pMap.SelectFeature(pLayer, pFt);
                //m_pMapControl.ActiveView.Extent = pFt.SHP.Envelope;
                //m_pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);
                m_pActiveView.Refresh();

                //m_pActiveView.ScreenDisplay.UpdateWindow();
                //EngineAPI.en_FlashGeometry(m_pMapControl, pFt.SHP);
                //m_pMapControl.FlashShape(pFt.SHP, 2, 150, null);
                //Engine_API.ZoomToFeature(m_pMapControl, pFt);
                return;
            }

            //IFeatureSelection FtSel = (IFeatureSelection) pLayer;
            //FtSel.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultAdd, false);
            ////int nOID = Convert.ToInt32(FtTreeView.SelectedNode.Text);
            ////IFeature pFeature = pFtCls.GetFeature(nOID);
            ////InitAttrListView(pFtCls, pFeature);
            ////m_pMap.SelectFeature(pLayer, pFeature);
            //m_pActiveView.Refresh();
        }
Ejemplo n.º 2
0
        private void FtTreeView_DoubleClick(object sender, EventArgs e)
        {
            if (FtTreeView.SelectedNode == null)
            {
                FtAttrView.Clear();
                return;
            }
            int nLevel = FtTreeView.SelectedNode.Level;

            if (nLevel != 1)
            {
                return;
            }
            //m_pMap.ClearSelection();
            //m_pActiveView.Refresh();

            TreeNode Nodeparent = FtTreeView.SelectedNode.Parent;

            ILayer pLayer = Hy.Common.Utility.Esri.MapOperAPI.GetLayerFromMapByName(m_pMap, Nodeparent.Text);

            if (pLayer == null)
            {
                return;
            }
            IFeatureLayer pFtLayer = (IFeatureLayer)pLayer;
            IFeatureClass pFtCls   = pFtLayer.FeatureClass;

            IFields pFields = pFtCls.Fields;
            int     nIndex  = pFields.FindField("BSM");

            if (nIndex == -1)
            {
                return;
            }

            IQueryFilter pQueryFilter = new QueryFilterClass();
            IField       pField       = pFields.get_Field(nIndex);


            bool bTest = GetTypeByEsriField(pField.Type);

            if (bTest == false)  //整形
            {
                pQueryFilter.WhereClause = "BSM = " + FtTreeView.SelectedNode.Text;
            }
            else
            {
                pQueryFilter.WhereClause = "BSM = '" + FtTreeView.SelectedNode.Text + "'";
            }

            IFeatureCursor FtCur = pFtCls.Search(pQueryFilter, true);
            IFeature       pFt   = FtCur.NextFeature();

            if (pFt != null)
            {
                InitAttrListView(pFtCls, pFt);
                //m_pMap.SelectFeature(pLayer, pFt);
                m_pMapControl.ActiveView.Extent = pFt.Shape.Envelope;
                m_pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
                m_pActiveView.ScreenDisplay.UpdateWindow();
                Hy.Common.Utility.Esri.MapOperAPI.FlashGeometry(m_pMapControl.Object as IMapControl4, pFt.Shape);
                //m_pMapControl.FlashShape(pFt.SHP, 2, 150, null);
                //Engine_API.ZoomToFeature(m_pMapControl, pFt);
                return;
            }
            //IFeatureSelection FtSel = (IFeatureSelection) pLayer;
            //FtSel.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultAdd, false);
            ////int nOID = Convert.ToInt32(FtTreeView.SelectedNode.Text);
            ////IFeature pFeature = pFtCls.GetFeature(nOID);
            ////InitAttrListView(pFtCls, pFeature);
            ////m_pMap.SelectFeature(pLayer, pFeature);
            //m_pActiveView.Refresh();
        }