ArcEngine二次开发——图形选择

语言:C#

实现思路

构造几何,利用IMap接口的SelectByShape方法进行选择

1、点击选择

利用IMapControl2接口的ToMapPoint方法构造点,然后利用SelectByShape方法进行选择。SelectByShape方法的第二、三个参数可根据实际情况进行设置。

     public static void QueryByClick(IMapControl2 pMapCon,int x,int y)
        {
            IMap pMap = pMapCon.Map;
            IActiveView pActiveView = pMap as IActiveView;
            //构造点
            IPoint pPoint = pMapCon.ToMapPoint(x, y);
            pMap.SelectByShape(pPoint, null, false);
            pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);
        }

2、矩形选择、圆形选择、多边形选择

矩形选择、圆形选择和多边形选择实现思路一致,都是利用IMapControl2接口的TrackRectangle(TrackCircle、TrackPolygon)方法构造几何图形,然后利用SelectByShape方法进行选择。TrackRectangle()方法的返回值为IEnvelop类型,TrackCircle()和TrackPolygon()的返回类型为IGeometry类型。 SelectByShape方法的第二、三个参数可根据实际情况进行设置。

        public static void QueryByRectangle(IMapControl2 pMapCon)
        {
            IMap pMap = pMapCon.Map;
            IActiveView pActiveView = pMap as IActiveView;
            //矩形选择
            IEnvelope pEnv = pMapCon.TrackRectangle();
            //多边形选择
            //IGeometry pGeo = pMapCon.TrackPolygon();
            //圆形选择
            //IGeometry pGeo = pMapCon.TrackCircle();
            pMap.SelectByShape(pEnv, null, false);
            pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);
        } 

猜你喜欢

转载自www.cnblogs.com/songqingguo/p/11937885.html