//featureClass是自己获取的featureClass,也可是sde中获取的。
public void FilterAndZoomToLayer(IFeatureClass featureClass)
{
IFeatureLayer featureLayer = new FeatureLayerClass();
featureLayer.FeatureClass = featureClass;
IFeatureLayerDefinition featureLayerDefinition = featureLayer as IFeatureLayerDefinition;
//获取符合条件的图层要素
featureLayerDefinition.DefinitionExpression = "XZQDM like '" + xz_xzqdm + "%'";
IFeatureLayer newFeatureLayer = featureLayerDefinition.CreateSelectionLayer(featureClass.AliasName, false, null, featureLayerDefinition.DefinitionExpression); ILayer newLayer = newFeatureLayer as ILayer;
mcView.AddLayer(newLayer); //实现过滤后的图层,缩放到图层
IEnvelope envelope = new EnvelopeClass();
ILayer layer = mcView.get_Layer(0);
IFeatureLayer featureLayer = layer as IFeatureLayer;
IQueryFilter queryFilter = new QueryFilterClass();
queryFilter.WhereClause = "";
IFeatureCursor featureCursor = featureLayer.FeatureClass.Search(queryFilter, true);
IFeature feature = featureCursor.NextFeature();
while (feature != null)
{
IGeometry geometry = feature.Shape;
IEnvelope featureExtent = geometry.Envelope;
envelope.Union(featureExtent);
System.Runtime.InteropServices.Marshal.ReleaseComObject(feature);
feature = featureCursor.NextFeature();
}
mcView.ActiveView.FullExtent = envelope;
}

AE二次开发中,过滤后的图层,实现缩放至图层效果的更多相关文章

  1. AE二次开发中几个功能速成归纳(符号设计器、创建要素、图形编辑、属性表编辑、缓冲区分析)

    /* * 实习课上讲进阶功能所用文档,因为赶时间从网上抄抄改改,凑合能用,记录一下以备个人后用. * * ----------------------------------------------- ...

  2. 在AE二次开发中出“正试图在 OS 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。”异常解决方案

    今天的一个项目总用到了AE的开发组件,也就是ESRI公司提供的一系列的开发包(组件)都是以dll(动态链接库的形式)然后今天在调试的时候却出现了“正试图在 OS 加载程序锁内执行托管代码.不要尝试在 ...

  3. CAD二次开发中浮动面板不浮动的问题

    CAD二次开发中创建了一个浮动面板,想让它创建出来后以浮动状态显示, 但是DockSides.None设置完后,面板还是不浮动.搞了很久,最后原来是 需要先设置Visible,再设置DockSides ...

  4. AutoCad 二次开发 .net 之层表的增加 删除 修改图层颜色 遍历 设置当前层

    AutoCad 二次开发 .net 之层表的增加 删除 修改图层颜色 遍历 设置当前层 AutoCad 二次开发 .net 之层表的增加 删除 修改图层颜色 遍历 设置当前层我理解的图层的作用大概是把 ...

  5. 23 Pro/E二次开发中的问题记录

    0 引言 由于项目中涉及到Pro/E的二次开发技术,因此在边用边学的情况下,解决了不少问题,也积攒了不少问题.其中有些问题可能不是调个函数就能搞定的,得了解CAD底层的东西. 1 问题描述 (1)CA ...

  6. Android开发中上线后修改应用名称的若干问题

    一.在Android Studio 1.3中修改app的包名: 需求来源: 之前开发的app已经在腾讯的应用宝上线,应客户要求,app需要改名字,这个就有点麻烦了.如果申请改名字,要求如下: 截图上图 ...

  7. phpcms 二次开发数据过滤的技巧

    参数过滤 1,针对不能直接使用pdo进行参数绑定,可以使用sprintf模拟,并使用new_addslashes来过滤,然后使用query执行拼接的sql %% - 返回百分比符号 %b - 二进制数 ...

  8. javaweb学习总结二十二(servlet开发中常见的问题汇总)

    一:web应用的映射问题 通常我们从别人那里拷贝来的代码,自己会修改应用的名称,但是web映射的访问路径并没有修改,还是原来的映射. 解决方法: 工程右键--properties--myeclipse ...

  9. Bentley二次开发中的,沿曲线构造拉伸实体问题

    引用文件:Bentley.Interop.MicroStationDGN 本人开发过程中遇到问题: 创建多个线段及弧线,通过自动创建复杂链获得,沿曲线构造拉伸实体的Path参数,拉伸曲线路径首尾特别近 ...

随机推荐

  1. PHP实现简易的模板引擎

    PHP实现简易的模板引擎 1.MVC简介 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式(详情自己百度): 1. Mode ...

  2. Xcode-程序开发设计-02九宫格

    行号是除 决定Y值 列号是余 决定X值 // // ViewController.m // 06-应用管理 // // Created by daier on 15/12/31. // Copyrig ...

  3. ubuntu修改主机名称

    一.为何要修改主机名称 在安装Ubuntu时,一不小心主机名称输入的“too long”了,导致命令行上就提示符占据了一行的1/3,迫使我产生修改主机名称的冲动. 二.操作方法 原理:系统启动时,会从 ...

  4. keil对51单片机变量和函数的编译处理

    (1)初始值不是0的全局变量 在程序调到main()函数执行前,除了要进行内存清零.初始化堆栈外,还需要将全局变量的初始值加载到RAM的指定区域(编译过程中为全局变量分配的空间). (2)未初始化的局 ...

  5. 我们说的oc是动态运行时语言是什么意思?

    1.KVC和KVO区别,分别在什么情况下使用?  答:KVC(Key-Value-Coding) KVO(Key-Value-Observing)理解KVC与KVO(键-值-编码与键-值-监看) 当通 ...

  6. iOS:翻页效果

    // // main.m // Hello // // Created by lishujun on 14-8-28. // Copyright (c) 2014年 lishujun. All rig ...

  7. Hadoop 2.6.0编译on mac

    花了一个晚上的时间弄了下hadoop的编译环境,碰到些错误,这里保存下. 需要编译Hadoop,不但需要安装Maven,还需要安装protobuf 安装Maven 下载:apache-maven-3. ...

  8. Codeforces 712E Memory and Casinos

    Description There are n casinos lined in a row. If Memory plays at casino \(i\), he has probability ...

  9. GNOME Shell叫板Ubuntu Unity:优劣PK

    转自GNOME Shell叫板Ubuntu Unity:优劣PK GNOME Shell 对阵 Ubuntu Unity--默认桌面界面的战火一触即发.双方在台上已经对峙了很长时间,现在是时候决定谁会 ...

  10. ZOOKEEPER在CENTOS6上的再安装

    作DUBBO时,肯定是需要的,,对的,,DUBBO也要熟悉一下才行啦.. URL: http://www.centoscn.com/CentosServer/test/2015/0120/4531.h ...