基于C#的ArcEngine二次开发56:双击属性表跳转目标要素并闪烁

        结合IHookActions的DoAction方法并搭上esriHookActionsFlash动作,这样做效果很接近arcmap中的效果,速度也比较快。Action方面有6个constant,可以根据需要选择

Constant

Value

Description

描述

esriHookActionsFlash 

0

Flash the geometry.

闪烁几何要素

esriHookActionsPan 

1

Pan to the geometry.

平移到几何要素

esriHookActionsZoom 

2

Zoom to the geometry.

缩放到几何要素

esriHookActionsGraphic 

3

Create a graphic for the geometry.

为几何要素创建图形

esriHookActionsLabel 

4

Create a graphic and label for the geometry.

为几何要素创建图形和标签

esriHookActionsCallout 

5

Create a callout for the geometry.

为几何要素创建标注

代码思路:

  • 获取要素的objectID,根据ID选出要素
  • 通过IHookActions闪烁要素

源代码:

private void LocatePoint(DataGridViewCellEventArgs e)
{
            int rowNO = e.RowIndex;
            if (rowNO >= 0)
            {
                int TowerObjectID = int.Parse(this.dataGridView.Rows[rowNO].Cells[0].Value.ToString());
                IQueryFilter pQueryFilter = new QueryFilterClass();
                pQueryFilter.WhereClause = "TowerObjectID=" + TowerObjectID;
                IFeatureCursor pFeatureCursor = _pFeatureLayerTower.Search(pQueryFilter, false);
                IFeature pFeature = pFeatureCursor.NextFeature();
                if (pFeature != null)
                {
                    IArray geoArray = new ArrayClass();
                    geoArray.Add(pFeature.ShapeCopy);
                    //通过IHookActions闪烁要素集合 
                    HookHelperClass m_pHookHelper = new HookHelperClass();
                    m_pHookHelper.Hook = this.mapContainer.MapControl.Object;
                    IHookActions hookActions = (IHookActions)m_pHookHelper;
 
                    hookActions.DoActionOnMultiple(geoArray, esriHookActions.esriHookActionsPan);
                    //hookActions.DoActionOnMultiple(geoArray, esriHookActions.esriHookActionsGraphic);
                    //hookActions.DoActionOnMultiple(geoArray, esriHookActions.esriHookActionsZoom);
                    //hookActions.DoActionOnMultiple(geoArray, esriHookActions.esriHookActionsCallout); 
                    Application.DoEvents();
                    m_pHookHelper.ActiveView.ScreenDisplay.UpdateWindow();
                    hookActions.DoActionOnMultiple(geoArray, esriHookActions.esriHookActionsFlash);
                }
            }       
}

参考资料:

ArcGIS 要素闪烁 - St.Dlng - 博客园 (cnblogs.com)

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小薛引路

喜欢的读者,可以打赏鼓励一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值