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 ...
随机推荐
- 6.第五篇 安装keepalived与Nginx
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483796&idx=1&sn=347664de ...
- 通过 Traefik 使用 Kubernetes Service APIs 进行流量路由 (http,https,金丝雀发布)
文章转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247490229&idx=1&sn=ca817054 ...
- CentOS7.x安装VNC
VNC需要系统安装的有桌面,如果是生产环境服务器,安装时使用的最小化安装,那么进行下面操作安装GNOME 桌面. # 列出的组列表里有GNOME Desktop. yum grouplist #安装 ...
- 洛谷P1719 最大加权矩形 (DP/二维前缀和)
题目描述也没啥好说的,就是给你个你n*n的矩形(带权),求其中最大权值的子矩阵. 首先比较好想的就是二维前缀和,n<=120,所以可以用暴力. 1 #include<bits/stdc++ ...
- python的基本运用
python基础 Python语言是一种解释型.面向对象.动态数据类型的高级程序设计语言 开发者:Guido van Rossum(人称龟叔) 基本概念 1.变量 变量名必须是大小写英文字母.数字或下 ...
- Java Style的C++容器流式处理类
很久没有上博客园了,最近一段时间,因为工作的关系时间上比较闲,利用闲暇时间重新翻了一下丢弃很久的C++语言.C++从98.11.14.17目前已经也走到了20版本,发生了很多变化,也引入了很多新的语言 ...
- Vue学习之--------事件的基本使用、事件修饰符、键盘事件(2022/7/7)
文章目录 1.事件处理 1.1. 事件的基本使用 1.1.1 .基础知识 1.1.2. 代码实例 1.1.3.测试效果 1.2.事件修饰符 1.2.1. 基础知识 1.2.2 .代码实例 1.2.3 ...
- python学习笔记---流程控制
二.流程控制 2.1选择结构与语句 2.1.1 最简单的if语句 注意:if语句后边必须加上冒号 满足条件后.可以执行多条语句. #最简单的if语句 print("请输入一个既能整除2,又能 ...
- 《HelloGitHub》第 79 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...
- CentOS7虚拟机配置git仓库(配置虚拟机,网络,git仓库,windows端git访问)
想要达成的目的:从windows使用git访问CentOS7服务器上搭建的git仓库 用到的软件: (1)VMware-workstation-full-15.5.0-14665864.exe (2) ...