现在的位置: 首页 > 综合 > 正文

SelectByShape

2012年01月19日 ⁄ 综合 ⁄ 共 1183字 ⁄ 字号 评论关闭

SelectByShape实现矩形选择要素

利用SelectByShape方法,实现矩形选择要素,并闪烁、定位。
代码:

                //selectbyshape方法
                IMap pMap = new MapClass();
                pMap 
= axMapControl1.Map;
                IPoint pPt 
= new PointClass(); ;
                pPt.PutCoords(e.mapX, e.mapY);

                IEnvelope pEn 
= new EnvelopeClass();
                pEn 
= axMapControl1.TrackRectangle();

                pMap.SelectByShape(pEn, 
nullfalse);//最后一个参数控制是否只选一个
                axMapControl1.Refresh();

                IEnumFeature pEnumFeature 
= pMap.FeatureSelection as IEnumFeature;
                IFeature pFeature;
                pFeature 
= pEnumFeature.Next();
                
//选中闪烁,并视图定位
                while (pFeature != null)
                
{
                    Application.DoEvents();
                    pEn.Union(pFeature.Extent);
                    axMapControl1.FlashShape(pFeature.Shape, 
3500null);
                    pFeature 
= pEnumFeature.Next();
                }

                axMapControl1.ActiveView.Extent 
= pEn;

代码放置于MapControl.MouseDown下即可实现
代码中是将所有Feature.Extent赋给Envelope实现,还可以调用Envelope.Expand来扩大视图范围,从而可以看到选中要素周边。
此外定位实现方法还可以在选中要素后,调用AE里的controlszoomtoselectedfeature来实现定位。

抱歉!评论已关闭.