ArcObjects SDK 012 PageLayout和Page
1、从ArcMap角度看结构
一个Mxd文件包含一个PageLayout对象和一个多多个Map对象,每个Map会被包成MapFrame,添加到PageLayout中。我们用ArcMap打开一个mxd文件,在布局模式下看PageLayout都包含了什么。
PageLayout包含的内容以及内容之间的关系较为复杂,整体上可以分为两个部分,Page和Elment。Elment又包含3类,MapFrame、MapSurroundFrame和普通的Element。每个MapFrame都会加载一个Map,并可以设置网格(MapGrid),每个MapSurroundFrame都对应一个MapFrame。看起来比较复杂,我们对应一下实际的东西就容易理解了。
MapFrame,翻译过来就是地图容器,Map会放到MapFrame后添加到PageLayout中。地图文档有几个Map,PageLayout中就会有几个MapFrame。MapSurroundFrame是MapSurround的容器,继承IMapSurround的对象有指北针、比例尺以及图例等。这些对象都和Map密切相关。所以每个MapSurroundFrame都会关联一个MapFrame,不然MapSurroundFrame中的MapSurround对象就不知道该如何渲染了。
2、从SDK的角度看
如果从ArcMap上看感觉乱糟糟的,那么从SDK的角度看会清晰很多。
PageLayout包含两个最重要的内容,一是继承实现了IPageLayout接口,定义了Page属性,Page较为简单。第二是继承实现了IGraphicsContainer接口,这样就可以在PageLayout上面加载和显示Element。
在继承IElement接口的类中,有两个特殊的类,MapFarme和MapSurroundFrame。MapFarme是Map的载体,Map通过MapFarme加载显示到了PageLayout上。MapSurroundFrame为和地图相关的图饰对象的载体,例如指北针、比例尺、图例等,这些对象都继承了IMapSurround接口,通过MapSurroundFrame加载显示到PageLayout上。每个MapSurroundFrame都对应一个MapFarme,从而确定加载的指北针、比例尺是针对哪个地图的。
MapFarme有一个比较重要的属性MapGrids,可以管理多种针对MapFrame的各种格网,例如经纬网、公里网等。
3、Page
Page对象可通过IPageLayout的Page属性获得,为IPage接口类型。Page翻译过来就是纸张的意思,其意义也是如此,标识我们要出的图要绘制在多大的纸张上。我们打开ArcMap,在没加载任何地图的情况下,系统会创建一个空地图。切换到布局视图下,最外面的黑色边框即为Page的范围。如下图所示。
处于选中状态的绿色虚线是MapFrame,当前加载的地图没有任何图层。其外面的黑色实线是Page的边界,我们出图的时候,只能出位于Page范围内的元素。Page默认单位是厘米,也可以设置为毫米或者英寸。Page默认是A4纸大小,其大小是可以设置的。Page左下角为0,0点,向右为X轴正方向,向上为Y轴正方向。
Page可设置的属性信息不多,我们可以参考下ArcObject SDK帮助中IPage的定义来看Page可以设置哪些信息。
从帮助上看,大概可以设置Page的边框、背景、大小以及单位等信息。我们平常使用的主要还是设置大小和单位。
ArcObjects SDK 012 PageLayout和Page的更多相关文章
- ArcObjects SDK(AE)10.1在vs2012安装的方法
ArcObjects SDK(以下简称AO)10.1只支持vs2010,如果装了vs2012,再安装AO会提示一串鸡肠(英文),意思是AO10.1只支持vs2010 想在2012下安装,可以通过修改注 ...
- WPF vs2015,vs2012 添加ArcObjects SDK
一:如果是vs2015,找到注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0\下面的这两个,并且将名称和数 ...
- ArcGIS10.2最新全套下载地址
http://www.tuicool.com/articles/VfaMfy 免责声明: 该链接来自于哥伦比亚大学或者牛津大学的网站链接, 下载 软件之前确保有正版的软件授权 ,本博客只是转载了网站链 ...
- Arc GIS engine10.2与VS2012的安装及匹配步骤
本文章已收录于: .embody { padding: 10px 10px 10px; margin: 0 -20px; border-bottom: solid 1px #ededed } ...
- VS2012中丢失ArcGIS模板的解决方法
VS2012中丢失ArcGIS模板的解决方法 由于ArcGIS10.0(for .NET)默认是用VS2010作为开发工具的,所以在先安装VS2012后装ArcGIS10.0 桌面版及ArcObjec ...
- 在VisualStudio2012环境下安装ArcEngine 10.0
因为ArcEngine10.0默认对应的开发工具为VS2010,在安装了VS2012的情况下安装ArcEngine10.0(注意:我自己的环境为VS2012和ArcEngine10.0,对于其他版本在 ...
- Convert part to feature command
Search 库主页 Related Links ArcObjects SDK for ArcGIS 10Microsoft Help System Documentation Convert par ...
- vs2012 arcgis engine 10 丢失arcgis模板
1.Visual Studio 2012环境下安装ArcGIS Engine 10 Visual Studio 2012环境下安装ArcObject SDK for the Microsoft .Ne ...
- ArcGIS 10.1 for Server 扩展开发(SOE)
原文连接:http://blog.csdn.net/arcgisserver_book/article/details/7869368 第一章为什么使用SOE 在ArcGIS 10.1中ArcGIS ...
- 视频流GPU解码在ffempg的实现(二)-GPU解码器
1.gpu解码器的基本调用流程 要做视频流解码,必须要了解cuda自身的解码流,因为二者是一样的底层实现,不一样的上层调用 那cuda的解码流程是如何的呢 在https://developer.nvi ...
随机推荐
- 修改因python是3版本导致的yum问题
问题原因: 系统自带的python出来的是2版本,但是因为某些原因,比如安装使用ElartAlert,导致执行python出来的是3版本. 此时执行yum相关的命令,会报错,具体错误信息如下: [ro ...
- AT24C02
AT24C02是一款拥有256bytes(32Page)的EEPROM. 一 :特点(部分) 1:双线接口: 2:双向数据传输协议: 3:400KHz波特率: 4:硬件写保护: 5:最大5ms写入同步 ...
- python face_recognition安装及各种应用
1.安装 首先,必须提前安装cmake.numpy.dlib,其中,由于博主所用的python版本是3.6.4(为了防止不兼容,所以用之前的版本),只能安装19.7.0及之前版本的dlib,所以直接p ...
- Masked Label Prediction: Unified Message Passing Model for Semi-Supervised Classification
背景 消息传递模型(Message Passing Model)基于拉普拉斯平滑假设(领居是相似的),试图聚合图中的邻居的信息来获取足够的依据,以实现更鲁棒的半监督节点分类. 图神经网络(Graph ...
- 六、Kubernetes节点与 Pod 亲和性
Kubernetes节点与 Pod 亲和性 一.节点亲和性策略介绍 pod.spec.nodeAffinity preferredDuringSchedulingIgnoredDuringExecu ...
- DQL-limit分页
DQL-limit分页 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能-limit. 一.limit概述 Limit是 ...
- 1.python基础使用
1.git简介 git是一个免费的开源的分布式版本控制系统,可以快速高效的处理从小型到大型项目的所有事务 在实际工作中可以保留项目的所有版本,可以快速的实现版本的回滚和修改 git整体可以分为4个区域 ...
- MindSpore Graph Learning
技术背景 MindSpore Graph Learning是一个基于MindSpore的高效易用的图学习框架.得益于MindSpore的图算融合能力,MindSpore Graph Learning能 ...
- CLR、CLS、CTS概述
在学习.NET的过程中,都会不可避免地接触到这三个概念,那么这三个东西是什么以及它们之间的关系是怎样的呢?任何编程语言,如果想要在.NET CLR上执行,就必需提供一个编译器,将此语言的程序编译成.N ...
- 打不开 github 的方法与推荐基于Vue3与Element plus的后台管理系统
一.打不开 github 的方法 1.打开本机 hosts 文件(C:\Windows\System32\drivers\etc) 2.然后在 hosts 文件里的末尾放入一下两个 IP 地址: # ...