• SelectByShape


    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来实现定位。
  • 相关阅读:
    P1032 字串变换
    P3203 [HNOI2010]弹飞绵羊
    P3690 【模板】Link Cut Tree (动态树)
    P2147 [SDOI2008]洞穴勘测
    P3950 部落冲突
    Codeforces Round #469 Div. 2题解
    线段树
    SDOI2018退役记
    4.1模拟题
    无旋Treap
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1406258.html
Copyright © 2020-2023  润新知