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 ...
随机推荐
- 使用SpringCloud实现的微服务软件开发部署到Linux上占用内存过大问题解决办法
问题描述 最近上线的一个使用JAVA的Spring Cloud开发的ERP软件,部署上线时发现很严重的内存资源占用过高问题,而实际上开发测试并没有很大的访问量,甚至却出现了服务器无法正常访问的现象. ...
- 几篇关于MySQL数据同步到Elasticsearch的文章---第四篇:使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch
文章转载自: https://www.cnblogs.com/dalaoyang/p/11018541.html 1.go-mysql-elasticsearch简介 go-mysql-elastic ...
- Elasticsearch删除操作详解
文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484022&idx=1&sn=7a4de21 ...
- Query String Query和Sumple Query String
- 我的 Kafka 旅程 - 文件存储机制
存储机制 Topic在每个Broker下存储所属的Partition,Partition下由 Index.Log 两类文件组成. 写入 Log 由多个Segment文件组成,每个Segment文件容量 ...
- 2022美团Java后端开发春招实习面经
2022美团Java后端开发春招实习面经 一面 1.讲一下计算机网络的五层架构,每层分别有什么协议 五层架构:应用层.运输层.网络层.数据链路层.物理层 2.什么是 Http 协议,各种 Ht ...
- 洛谷P2863 [USACO06JAN]The Cow Prom S (tarjan)
题目简述:一个有向图,求出这个图点数>1的强连通分量的个数. 那么就是tarjan求强联通分量的模板了. 记得要用一个数组标记节点是否在栈中. 1 #include<bits/stdc++ ...
- 集合元素的遍历操作,使用迭代器Iterator接口
1.内部的方法:hasNext() 和 next() 推荐的方式: //hasNext():判断是否还有下一个元素while(iterator.hasNext()){ //next():①指针下移 ② ...
- 记一次 .NET 某医疗器械 程序崩溃分析
一:背景 1.讲故事 前段时间有位朋友在微信上找到我,说他的程序偶发性崩溃,让我帮忙看下怎么回事,上面给的压力比较大,对于这种偶发性崩溃,比较好的办法就是利用 AEDebug 在程序崩溃的时候自动抽一 ...
- 5.websocket原理
websocket协议原理 1.WebSocket协议是基于TCP的一种新的协议.WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符.它实现了浏览器与 ...