AE接口解析

2024-05-09 03:18
文章标签 接口 解析 ae

本文主要是介绍AE接口解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

AE接口解析-IMAP

IMAP接口提供用的方法是用来控制地图的,AE AO均提供该接口。当需要在地图上显示的数据进行操作时你也许该从它提供的方法中找答案。在ArcGIS开发帮助中关于IMAP接口的使用说明入下:Use the IMap interface to display data from various data sources. The IMap interface is a starting point for many of the tasks one does with a Map. For example, use IMap to add, delete, and access map layers containing data from various sources including feature layers and graphics layers; associate map surround objects (legends, scale bars, etc) with the Map; access the various properties of a Map including the area of interest, the current map units, and the spatial reference; select features and access the Map's current selection.

The IMap interface is a starting point for many of the tasks one does with a Map.”意思是一幅地图大部分的工作都是从IMAP接口开始的,可见此接口的重要性,所以就在它开始吧!亲

首先来说的是layer三剑客:layer、 layers layercount

layer:Layer(Index)其是一个只读属性返回指定索引index位置的Layer,使用如下例:

public int LayerCount(AxMapControl amc1)

{

IMap pmap = amc1.Map;

int n = pmap.LayerCount;

return n;

}


layersLayers (uid, recursive)是一个只可读不可写的属性,当第二个属性为true时该属性获取第一个参数uid指定的Layers,赋值给一个IEnumLayer的变量,开发帮助解释如下:The layers in the map of the type specified in the uid. If recursive is true it will return layers in group layers.

使用可看下面一个简单的例子:

public void GetFeatureLayers(AxMapControl amc1)

{

IMap pmap = amc1.Map;

ILayer player;

IEnumFeature pEnumfeature;

UID puid = new UID();


puid.Value = "{40A9E885-5533-11d0-98BE-00805F7CED21}";

pEnumfeature =(IEnumFeature)pmap.get_Layers(puid,true);

pEnumfeature.Reset();

player = (ILayer)pEnumfeature.Next();

do

{

MessageBox.Show(player.Name);

player = (ILayer)pEnumfeature.Next();

}

while (player != null);

}

其中比较常用的UID参数值如下:

{6CA416B1-E160-11D2-9F4E-00C04F6BC78E} IDataLayer

{40A9E885-5533-11d0-98BE-00805F7CED21} IFeatureLayer

{E156D7E5-22AF-11D3-9F99-00C04F6BC78E} IGeoFeatureLayer

{34B2EF81-F4AC-11D1-A245-080009B6F22B} IGraphicsLayer

{5CEAE408-4C0A-437F-9DB3-054D83919850} IFDOGraphicsLayer

{0C22A4C7-DAFD-11D2-9F46-00C04F6BC78E} ICoverageAnnotationLayer

{EDAD6644-1810-11D1-86AE-0000F8751720} IgroupLayer


LayerCountLayerCount其是一个只读属性返回指定map里面Layer的个数,使用如下例

public void LayerCount(AxMapControl amc1, ref int n)

{

IMap pmap = amc1.Map;

n = pmap.LayerCount;

}


SelectionCount属性:是个只读,返回一个int类型为map被选中要素的个数,如下例:

IMap pmap = amc1.Map;

int m = pmap.SelectionCount;


MapScale属性:可读可写,double类型,获取或者设置当前map的地图比例尺,如下例:

pmap.MapScale =double m;\\设置

double m=pmap.MapScale;\\获取



接下来是几个常用的IMap接口的方法:

AddLayer方法:AddLayerIlayer Layer)向该map添加一个Layer。该方法不可重载只有一个Ilayer接口的实例。注意,几乎每一个地图都是按照图层来组织的,图形的存储就好像是一个堆栈结构,也就是说你最后添加的图层,他的图层编号是0,这个的确有些怪异。有趣的是在IMapControl接口中也提供了一个Addlayer方法,其可以重载。与Imap方法不同的是它有两个参数的方法:AddLayer (ILayer Layer,int toIndex)它可以让我们指定图层号。


AddLayers方法:public void AddLayers (IEnumLayer Layers,bool autoArrange),添加一个EnumLayer变量的layers到该map,第一个参数为IEnumLayer类型,第二个参数为bool型变量。要说明的是如果参数 autoArrangetrue,加入的图层是可以自动排序的,默认情况下注记层在最上面,然后依次是点层、线层、面层。还有它还会尝试自动建立地图的空间坐标系哎:)


ClearLayers方法:如果你想将所有的layermap中移除,用它吧!


ClearSelection方法:如果你想清除你已选择的要素,用它吧!


SelectFeature 方法:public void SelectFeature (ILayer Layer,IFeature Feature)从一个Layer中选择一个Feature


MoveLayer方法:public void MoveLayer(ILayer Layer, int toIndex)把一个Layer从当前的位置移动到指定的索引位置。如下例:

public void Movelayer(AxMapControl amc1, ILayer pLayer,int n)

{

IMap pmap = amc1.Map;

pmap.MoveLayer(pLayer, n);

}


SelectByShape方法:public void SelectByShape (Shape, env, justOne )方法是选择Map中的和指定的shape相交的所有FeatureLayer图层。只有IFeatureLayer::Selectable设置为true时图层才会被搜索,env参数是设置选择环境的,可以自定义一个环境或者直接传入nothingjustone参数是指是否在选择到一个实体就停止搜索,选择的结果保存在每个featurelayer的选择集中,可看下例:

 

利用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, null, false);//
最后一个参数控制是否只选一个
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, 3, 500, null);
pFeature = pEnumFeature.Next();
}
axMapControl1.ActiveView.Extent = pEn;

这篇关于AE接口解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/972238

相关文章

解析 XML 和 INI

XML 1.TinyXML库 TinyXML是一个C++的XML解析库  使用介绍: https://www.cnblogs.com/mythou/archive/2011/11/27/2265169.html    使用的时候,只要把 tinyxml.h、tinystr.h、tinystr.cpp、tinyxml.cpp、tinyxmlerror.cpp、tinyxmlparser.

tf.split()函数解析

API原型(TensorFlow 1.8.0): tf.split(     value,     num_or_size_splits,     axis=0,     num=None,     name='split' ) 这个函数是用来切割张量的。输入切割的张量和参数,返回切割的结果。  value传入的就是需要切割的张量。  这个函数有两种切割的方式: 以三个维度的张量为例,比如说一

vue3项目将所有访问后端springboot的接口统一管理带跨域

vue3项目将所有访问后端springboot的接口统一管理带跨域 一、前言1.安装Axios2.创建Axios实例3.创建API服务文件4.在组件中使用API服务 二、跨域三、总结 一、前言 在Vue 3项目中,统一管理所有访问后端Spring Boot接口的最佳实践是创建一个专门的API服务层。这可以让你的代码更加模块化、可维护和集中管理。你可以使用Axios库作为HTT

陀螺仪LSM6DSV16X与AI集成(8)----MotionFX库解析空间坐标

陀螺仪LSM6DSV16X与AI集成.8--MotionFX库解析空间坐标 概述视频教学样品申请源码下载开启CRC串口设置开启X-CUBE-MEMS1设置加速度和角速度量程速率选择设置FIFO速率设置FIFO时间戳批处理速率配置过滤链初始化定义MotionFX文件卡尔曼滤波算法主程序执行流程lsm6dsv16x_motion_fx_determin欧拉角简介演示 概述 本文将探讨

【文末附gpt升级秘笈】腾讯元宝AI搜索解析能力升级:千万字超长文处理的新里程碑

腾讯元宝AI搜索解析能力升级:千万字超长文处理的新里程碑 一、引言 随着人工智能技术的飞速发展,自然语言处理(NLP)和机器学习(ML)在各行各业的应用日益广泛。其中,AI搜索解析能力作为信息检索和知识抽取的核心技术,受到了广泛的关注和研究。腾讯作为互联网行业的领军企业,其在AI领域的探索和创新一直走在前列。近日,腾讯旗下的AI大模型应用——腾讯元宝,迎来了1.1.7版本的升级,新版本在AI搜

消息认证码解析

1. 什么是消息认证码         消息认证码(Message Authentication Code)是一种确认完整性并进行认证的技术,取三个单词的首字母,简称为MAC。         消息认证码的输入包括任意长度的消息和一个发送者与接收者之间共享的密钥,它可以输出固定长度的数据,这个数据称为MAC值。         根据任意长度的消息输出固定长度的数据,这一点和单向散列函数很类似

问题1,PE文件转到内存中出现解析PE不正确的问题

1,使用fopen(FileName, “r”) r的方式读取文件到内存,此时就可能存在问题了,r以只读方式,有时候不表示字符的有可能就不读了,那么内存中就不会是完整的原始文件。所以此时要采用rb,二进制读取的方式。 bool ReadFileToMem(char* FileName, char**buf) { FILE* f; f = fopen(FileName, “rb”); if

[大师C语言(第三十六篇)]C语言信号处理:深入解析与实战

引言 在计算机科学中,信号是一种软件中断,它允许进程之间或进程与内核之间进行通信。信号处理是操作系统中的一个重要概念,它允许程序对各种事件做出响应,例如用户中断、硬件异常和系统调用。C语言作为一门接近硬件的编程语言,提供了强大的信号处理能力。本文将深入探讨C语言信号处理的技术和方法,帮助读者掌握C语言处理信号的高级技巧。 第一部分:C语言信号处理基础 1.1 信号的概念 在Unix-lik

免费内网穿透工具 ,快解析内网穿透解决方案

在IPv4公网IP严重不足的环境下,内网穿透技术越来越多的被人们所使用,使用内网穿透技术的好处有很多。 1:无需公网ip 物以稀为贵,由于可用的公网IP地址越来越少,价格也是水涨船高,一个固定公网IP一年的成本要上万,而使用内网穿透技术则不需要公网IP的支持。 2:提高安全性 使用内网穿透技术,无需在路由器映射端口,我们知道黑客通常会使用端口扫描来寻找攻击对象,不映射端口能大大提高服务器的安全

混合密码系统解析

1. 概述         混合密码系统(hybrid cryptosystem)是将对称密码和非对称密码的优势相结合的方法。一般情况下,将两种不同的方式相结合的做法就称为混合(hybrid)。用混合动力汽车来类比的话,就相当于是一种将发动机(对称密码)和电动机(非对称密码)相结合的系统。         混合密码系统中会先用快速的对称密码来对消息进行加密,这样消息就被转换为了密文从而也就保证