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 ...
随机推荐
- centos7 docker卸载老版本并升级到最新稳定版本
一.前言 docker的版本分为社区版docker-ce和企业版dokcer-ee社,区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施.容器.插 ...
- .NET 中的 Swagger 文档排序设置
Swagger的API默认排序往往达不到效果,甚至设置了Action排序也没有作用.这里直接给出代码,关键在于 IDocumentFilter 实现. 注意 DocumentFilter 注册要放在尾 ...
- C# 从零开始使用Layui.Wpf库开发WPF客户端
一.简介 最近需要开发一个桌面版的工具软件,之前用得更多的是Winform,作为一个全干工程师,我们也要兼顾下WPF,趁此机会再研究下开源控件库. MaQaQ:Winform真好用(有个HZHCont ...
- 3.14 + 1e10 - 1e10 = 0 ? ——浮点数的本质
3.14 + 1e10 - 1e10 = 0 ? --浮点数的本质 我们先看这样一个例子: #include <iostream> int main(int argc, char **ar ...
- MySQL-事务中的一致性读和锁定读的具体原理
前言 上一篇文章MySQL-InnoDB行锁中,提到过一致性锁定读和一致性非锁定读,这篇文章会详细分析一下在事务中时,具体是如何实现一致性的. 一致性读原理 start transaction和beg ...
- DTMF从2833到inband的方案
概述 freeswitch是一款简单好用的VOIP开源软交换平台. 之前的文章中介绍过通过dialplan拨号计划配置的方法,实现2833到inband的转换,但是实际生产环境中的场景会更复杂,无法预 ...
- 微信 dat 文件还
荐
前言 以微信 PC 端为例 某个小姐姐/小哥哥通过微信发给你的图片会在以下目录以 .dat 后缀的格式出现 C:\Users\taadis\Documents\WeChat Files\taadis\ ...
- 「硬核实战」回调函数到底是个啥?一文带你从原理到实战彻底掌握C/C++回调函数
大家好,我是小康. 网上讲回调函数的文章不少,但大多浅尝辄止.缺少系统性,更别提实战场景和踩坑指南了.作为一个在生产环境中与回调函数打了多年交道的开发者,今天我想分享一些真正实用的经验,带你揭开回调函 ...
- 7. RabbitMQ 消息队列——延时队列(Spring Boot + 安装message_exchange"延迟插件" 的详细配置说明)的详细讲解
7. RabbitMQ 消息队列--延时队列(Spring Boot + 安装message_exchange"延迟插件" 的详细配置说明)的详细讲解 @ 目录 7. Rabbit ...
- hashtable底层
一.单线程环境下 底层:hash表结构 (数组 + 链表) 使用无参构造创建对象时 会默认长度11的数组 加载因子0.75 Hashtable<Object, Object> hashta ...