ArcObjects SDK 009 Map-Layer的结构
1、Map-Layer主干结构
一个mxd文件可以包含多个地图,但我们常用的大部分都是包含一个地图。一个地图可以包含多个图层组和图层,而图层指向的则是实际数据。图层可以控制数据是否显示、显示样式、最大最小显示比例尺等。Map可以设置自己的空间参考,在渲染的时候,各图层会投影到地图的空间参考下显示。
我们可以通过打开mxd获取map,从而获取图层对象。也可以通过ArcObjects SDK打开各类数据源,实例化图层。图层也可以单独保存成lyr文件,和mxd文件一样,只是保存了图层信息,并不保存图层指向的数据。
Map-Layer这个部分我认为是ArcObjects SDK中最核心、最重要的部分。我们在开发的时候,经常就是围绕这块的内容展开。从Map-Layer这两个点可以引出一大批重要的接口,例如IFeatureClass、IFeatureSelection、IFeatureCursor、IField、IFeature、IFeatureRenderer、IRaster、IRasterRenderer等,这些都是非常重要且使用频率非常高的接口。Map-Layer引申出来的关系网如下图所示。

2、Map
对于Map的话,我们需要了解以下内容。
1、一个mxd文件是可以包含多个地图文件的,但只能有一个处于激活状态,也就是在MapControl控件中,只能显示一个Map。
2、Map中包含的图层的空间参考可以各种各样,Map也可以设置自己的空间参考,显示的时候,会把图层的转换到Map的空间参考上显示。
3、 如果地图是地理空间参考的话,ArcGIS会默认以Plate_Carree投影显示。
打开ArcGIS自带的地图USA.mxd文件,如下图所示。

从图层树以及布局模式下的MapFrame可以看出,当前一共有三个地图,Conterminous United States、Hawaii和Alaska,分别对应布局模式下的三个MapFrame,每个MapFrame都有自己的显示比例以及比例尺元素。
有时候我们在做中国地图的时候,为了省事,南海那部分就用一张图片代替,放到地图的右小角。但把南海部分也做成一个Map,使用两个MapFarme是最规范的做法。
ArcObjects SDK 009 Map-Layer的结构的更多相关文章
- ArcObjects SDK开发 003 宏观角度看ArcObjects SDK
1.为什么要宏观上看ArcObjects SDK ArcObjects SDK库是一个非常庞大复杂COM组件集合,ArcGIS10.0有1000多个枚举.90多个结构体.5000多个接口以及4000多 ...
- ArcObjects SDK开发 008 从mxd地图文件说起
1.Mxd文件介绍 ArcGIS的地图文件为.mxd扩展名.Mxd文件的是有版本的,和ArcGIS的版本对应.可以在ArcMap中的File-Save A Copy,保存一个地图拷贝的时候选择Mxd文 ...
- ArcObjects SDK开发 007 自定义App-Command-Tool框架
1.为什么再设计一套App-Command-Tool框架 为什么我们要自己再设计一套App-Command框架,而不直接使用AO API中的AxControl-ICommand这套已经非常好的框架呢? ...
- ArcObjects SDK(AE)10.1在vs2012安装的方法
ArcObjects SDK(以下简称AO)10.1只支持vs2010,如果装了vs2012,再安装AO会提示一串鸡肠(英文),意思是AO10.1只支持vs2010 想在2012下安装,可以通过修改注 ...
- ArcObjects SDK开发 006 ICommand和ITool接口
1.ICommand接口 ICommand接口是插件协议之一,继承该接口的类都可以成为命令.即点击一下执行,不主动与宿主发生鼠标和键盘交互.该接口包含的重要成员如下表所示. 序号 名称 类型 描述 1 ...
- ArcObjects SDK开发 004 如何学习好ArcObjects SDK开发
1.基于Arcobjects SDK可以做什么 基于Arcobjects SDK开发,大部分情况下就是做桌面GIS应用程序.AO写的代码是不能直接在Web服务上运行的,但如果你前端是JS,需要后端处理 ...
- ArcObjects SDK开发 002 写第一个ArcObjects SDK程序
1.开发环境 基于ArcObjects SDK开发,开发环境一般选用Visual Studio,开发语言使用C#,开发包使用ArcObjects SDK for .Net.UI有的使用Winform, ...
- ArcObjects SDK开发 001 ArcObjects SDK 简介
1.什么是ArcObjects SDK 在网上搜索什么是ArcObjects,会搜到如下的定义. 这个定义比较准确,也比较容易理解. 2.什么是ArcEngine 在网上搜索ArcEngine,一般会 ...
- ArcObjects SDK开发 016 在ArcMap中使用Toolbox
1.如何找到ToolBox 通过Geoprocessing菜单上的ArcToolbox菜单项,可以打开ArcToolbox面板. 工具栏上也有一个ArcToolbox的按钮,点击该按钮也可以打开. 通 ...
- ArcObjects SDK开发 017 在ArcObject SDK 中使用Toolbox
1.Geoprocessor和IGPProcess Geoprocessor是ArcObjects SDK中定义Tool执行器.IGPProcess接口是ArcObjects SDK中定义的ArcTo ...
随机推荐
- docker logs 命令使用
查看容器的操作信息 a3: 正在运行容器简称 docker logs a3
- 容器一直处于Create状态
通过命令排查 docker inspect b5be1d9e71de报错 "Error": "Could not attach to network fabric-tbc ...
- Oracle 内存(SGA,PGA)详细介绍
一.名词解释(1)SGA:SystemGlobal Area是OracleInstance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池.数据缓冲区.日志缓冲区.(2)共享 ...
- 团队小规模本地大模型服务平台搭建 - Ubuntu
实现目标和考虑因素 部署一个支持多用户同时使用.多模型运行的离线局域网大模型服务器 需要考虑以下几个关键因素: 大模型的加载和管理.使用一个基础大模型,根据实战需要创建多个专用模型,模型管理方便可靠. ...
- 【网络攻防】ARP欺骗实验
实验概述 ARP欺骗是一类地址欺骗类病毒,属于木马病毒,自身不具备主动传播的特性,不会自我复制.但是由于其发作的时候会不断向全网发送伪造的ARP数据包,导致网络无法正常运行,严重的甚至可能带来整个网络 ...
- luogu-P5320题解
简要题意 设 \(f(n)\) 表示用多米诺骨牌恰好铺满 \(2\times n\) 的平面的方案数,\(g(n)\) 表示用多米诺骨牌恰好铺满 \(3\times n\) 的平面的方案数:设 \(F ...
- 关于CH182LED配置的说明
CH182的LED配置有两种模式: 传统LED功能 该功能可通过页7寄存器19控制bit 3-5控制 使用时可将页7寄存器19 bit3 置0 通过bit4-5实现不同模式,默认情况下bit3为0,b ...
- JavaScript Library – Embla Carousel
前言 2022 年 4 月,我写了一篇 Swiper 介绍. Swiper 是当时前端最多人使用的 Slider 库,没有之一,一骑绝尘. 但是!时过境迁,这两年已经有一匹神秘的黑马悄悄杀上来了. 它 ...
- Mybatis搭建环境时需要注意事项
- 自动驾驶仿真全攻略:基于CARLA+YOLOv5的自主导航实战
引言:自动驾驶仿真的战略价值 在自动驾驶技术落地的前夜,仿真测试正在成为连接算法研发与实际路测的关键桥梁.据统计,自动驾驶系统每1万公里的接管次数需从仿真测试的百万公里级数据中优化,这使得CARLA. ...