同时闪烁多个要素代码(ArcEngine)
/// <summary>
/// 根据查询条件构造
/// </summary>
/// <param name="where">查询条件</param>
public void FilterLayer(string where)
{
IFeatureLayer flyr = (IFeatureLayer)axMapControl1.get_Layer(0);
IFeatureClass fcls = flyr.FeatureClass;
IQueryFilter queryFilter = new QueryFilterClass();
queryFilter.WhereClause = where;
// 缩放到选择结果集,并高亮显示
ZoomToSelectedFeature(flyr, queryFilter);
//闪烁选中得图斑
IFeatureCursor featureCursor = fcls.Search(queryFilter, true);
FlashPolygons(featureCursor);
}
/// <summary>
/// 缩放到选择结果集,并高亮显示
/// </summary>
/// <param name="pFeatureLyr"></param>
/// <param name="pQueryFilter"></param>
private void ZoomToSelectedFeature(IFeatureLayer pFeatureLyr, IQueryFilter pQueryFilter)
{
#region 高亮显示查询到的要素集合
//符号边线颜色
IRgbColor pLineColor = new RgbColor();
pLineColor.Red = 255;
ILineSymbol ilSymbl = new SimpleLineSymbolClass();
ilSymbl.Color = pLineColor;
ilSymbl.Width = 5;
//定义选中要素的符号为红色
ISimpleFillSymbol ipSimpleFillSymbol = new SimpleFillSymbol();
ipSimpleFillSymbol.Outline = ilSymbl;
RgbColor pFillColor = new RgbColor();
pFillColor.Green = 60;
ipSimpleFillSymbol.Color = pFillColor;
ipSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSForwardDiagonal;
//选取要素集
IFeatureSelection pFtSelection = pFeatureLyr as IFeatureSelection;
pFtSelection.SetSelectionSymbol = true;
pFtSelection.SelectionSymbol = (ISymbol)ipSimpleFillSymbol;
pFtSelection.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultNew, false);
#endregion
ISelectionSet pSelectionSet = pFtSelection.SelectionSet;
//居中显示选中要素
IEnumGeometry pEnumGeom = new EnumFeatureGeometry();
IEnumGeometryBind pEnumGeomBind = pEnumGeom as IEnumGeometryBind;
pEnumGeomBind.BindGeometrySource(null, pSelectionSet);
IGeometryFactory pGeomFactory = new GeometryEnvironmentClass();
IGeometry pGeom = pGeomFactory.CreateGeometryFromEnumerator(pEnumGeom);
axMapControl1.ActiveView.Extent = pGeom.Envelope;
axMapControl1.ActiveView.Refresh();
}
/// <summary>
/// 闪烁选中得图斑
/// </summary>
/// <param name="featureCursor"></param>
private void FlashPolygons(IFeatureCursor featureCursor)
{
IArray geoArray = new ArrayClass();
IFeature feature = null;
while ((feature = featureCursor.NextFeature()) != null)
{
//feature是循环外指针,所以必须用ShapeCopy
geoArray.Add(feature.ShapeCopy);
}
//通过IHookActions闪烁要素集合
HookHelperClass m_pHookHelper = new HookHelperClass();
m_pHookHelper.Hook = axMapControl1.Object;
IHookActions hookActions = (IHookActions)m_pHookHelper;
hookActions.DoActionOnMultiple(geoArray, esriHookActions.esriHookActionsPan);
//hookActions.DoActionOnMultiple(geoArray, esriHookActions.esriHookActionsGraphic);
//hookActions.DoActionOnMultiple(geoArray, esriHookActions.esriHookActionsZoom);
Application.DoEvents();
m_pHookHelper.ActiveView.ScreenDisplay.UpdateWindow();
hookActions.DoActionOnMultiple(geoArray, esriHookActions.esriHookActionsFlash);
}
}
from: http://www.cnblogs.com/feilong3540717/archive/2011/07/27/2118651.html
同时闪烁多个要素代码(ArcEngine)的更多相关文章
- ARM汇编程序闪烁灯与其反汇编代码比较
/* *LED闪烁 *led.s */ #define GPJ0CON 0xE0200240 #define GPJ0DAT 0xE0200244 .global _start //把 _start ...
- ArcGIS 要素闪烁
ArcGIS 要素闪烁 通过双击要素图例,闪烁定位到要素,并且闪烁一段时间: IFeatureLayer featureLayer = layer as IFeatureLayer; ...
- arcengine 开发经典帖
http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=25575&page=1&extra= 使用ArcGIS Engine 开发自定义 ...
- arcengine 开发经典帖 【强烈推荐仔细研读】
转自原文 arcengine 开发经典帖 使用ArcGIS Engine 开发自定义GIS应用: 第一部分:使用ArcGIS Engine 发布自定义GIS应用软件-全面了解ArcGIS Engine ...
- NodeMCU入门(2):在线构建、刷入固件,上传代码
准备工作 1.NodeMCU模块 2.ESP8266Flasher.exe 3.ESPlorer v0.2.0-rc6 构建固件 Building the firmware提供了三种构建你自己固件的方 ...
- arcgis 要素服务增删改查
两种方式: 第一种 要素服务的增删改操作,在ArcGIS API for JS中给我们提供了三个类用于要素的增Add,删Delete,改Update 添加draw和要素服务 //用于操作的要素图层,注 ...
- 关于印发利用DEM确定耕地坡度分级技术规定(试行)的通知
下载:http://files.cnblogs.com/files/gisoracle/%E5%88%A9%E7%94%A8DEM%E7%A1%AE%E5%AE%9A%E8%80%95%E5%9C%B ...
- JavaScript侧边悬浮框
<script> window.onscroll=function(){ var oDiv=document.getElementById('div1'); var scrollTop=d ...
- css兼容问题集合
css兼容问题 兼容问题 1.文字本身的大小不兼容.同样是font-size:14px的宋体文字,在不同浏览器下占的空间是不一样的,ie下实际占高16px,下留白3px,ff下实际占高17px,上留白 ...
随机推荐
- Python 基礎 - 文件的操作
在來我們來玩一下文件操作,這個在未來工作上,也是會很常用到的功能 Python2.7中,可以用file()來打開文件,而在Python3中,一律都是用open(),接下來在當前目錄下,先建立一個空文件 ...
- JS 设计模式
1.单例模式:产生一个类的唯一实例 例如:我们在页面中添加遮罩层,每次只能有一个遮罩层存在,因此为单例模式. 在创建遮罩层之前判断是否已经存在,若没有存在,则创建. 这里使用闭包,将是mask变量封装 ...
- iOS 系统架构
https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/ ...
- 【Cocos2d-x 3.x】 场景切换生命周期、背景音乐播放和场景切换原理与源码分析
大部分游戏里有很多个场景,场景之间需要切换,有时候切换的时候会进行背景音乐的播放和停止,因此对这块内容进行了总结. 场景切换生命周期 场景切换用到的函数: bool Setting::init() { ...
- Hammer.js--转载自李林峰的园子
一.前言 移动端框架当前还处在初级阶段,但相对于移动端的应用来说已经有很长时间了.虽然暂时还没有PC端开发的需求量大,但移动端的Web必然是一种趋势,在接触移动端脚本的过程中,最开始想到的是juqer ...
- 帝国时代II 高清版 steam 4.4 字体替换 微软雅黑
其实默认的中文字体算是中规中矩吧,但是我并不喜欢 从昨天开始就想着换 于是我就开始搜索帝国时代2的游戏目录的资源,马上就锁定到了\Steam\steamapps\common\Age2HD\resou ...
- 启用Servlet 3.0新特性——注解支持
Servlet 3.0版本新增注解支持,可是在实际使用中,添加的注解总是不起作用.经过检查,原来是“web.xml”文件的顶级标签“<web-app/>”中的一个叫做“metadata-c ...
- 怎么样修改PHPStorm中文件修改后标签和文件名的颜色与背景色
自从最近在PHPstrom里引入Git,并且使用MONOKAI_SUBLIME主题之后 ,当文件在PHPstrom中进行编辑,文档内容变化时,左侧项目文件列表中的文件名颜色以及右侧编辑区域标签卡的文件 ...
- linux开机启动mongodb
方式一(不推荐) ubuntu编辑/etc/rc.local /home/wyt/bin/mongodb-linux-x86_64-ubuntu1404-3.2.8/bin/mongod --dbpa ...
- [Andriod] - Andriod Studio + 逍遥模拟器
Andriod Studio自身自带的模拟器实在太卡,用Genymotion模拟器又要安装VirtualBox,然后一堆的设置,结果还是卡B. 网上下了个逍遥模拟器,这模拟器是游戏专用的,目前正式版的 ...