语言: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); }