• 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);
            } 
  • 相关阅读:
    线性表链式存储方式的C语言实现
    线性表顺序存储方式的C语言实现
    抽象数据类型Triplet的C语言实现
    Python之装饰器
    Django-auth(认证系统)
    Django-中间件
    Django-form表单
    Python cookie、session和自定义分页
    Django 使用ajax上传文件
    Python之迭代器和生成器
  • 原文地址:https://www.cnblogs.com/songqingguo/p/11937885.html
Copyright © 2020-2023  润新知