1、Mxd文件介绍

ArcGIS的地图文件为.mxd扩展名。Mxd文件的是有版本的,和ArcGIS的版本对应。可以在ArcMap中的File-Save A Copy,保存一个地图拷贝的时候选择Mxd文件的版本,支持的版本如下图所示。

因为我是用ArcMap 10.8截的图,所以这还需要再加一个ArcMap 10.8 Document。一个地图文件包含一个布局对象,一个多或者地图对象以及其他一些附属信息。地图文件不直接存储例如.shp、.tif等实际数据,只是存储一些图层信息以及图层对这些数据的引用。

高版本的ArcMap可以打开同版本和低版本的地图文件。

2、使用ArcMap打开mxd文件

下图是ArcMap自带的一个典型的mxd文件打开的效果。如下图所示。

当前模式为布局模式,即激活的是PageLayout,一共包含了三个地图,其中激活的地图为第一个Conterminous United States。

切换到数据模式,ArcMap显示的是当前激活的地图,如下图所示。

从ArcMap展示上,我们可以看出,一个地图文件,包含了一个布局对象,即PageLayout。包含了多个地图对象,即Map。每个Map都可以作为一个元素在PageLayout上显示,并可以设置自己的显示比例尺,不必统一。针对每个地图,可以添加其关联的比例尺,图例、指北针、网格等智能元素。也可以在布局视图上添加点、线、面以及文字等元素。

ArcMap中,布局和数据视图,同一时刻只能激活一个。而且当数据视图被激活的时候,显示的地图为布局视图中的活动地图。

每个Map都包含了多个图层, 可以为这些图层设置渲染、标注等信息,但并不存储数据本身。我们可以在Map上添加点、线、面以及文字等非数据元素。

3、使用ArcObject SDK打开mxd文件

在ArcObjects SDK中,我们一般使用IMapDocument接口打开mxd文件。在帮助中,查看到的IMapDocument的结构如下图所示。

有几个比较重要的属性。

ActiveView,当布局视图激活的时候,该属性返回的是IPageLayout,当数据视图激活的时候,返回的是布局视图下活动的地图,即IMap。

MapCount表示当前地图文件有几个地图,通过Map[Index]可以获取指定的地图对象。

PageLayout即地图文件包含的布局对象,返回类型为IPageLayout。

IMap和IPageLayout的实现类都继承了IActiveView,即实际开发的时候,IMap和IPageLayout接口类型的变量都可以转换成IActiveView接口。

IMapDocument、IActiveView、IMap和IPageLayout接口之间的关系可与用下图表示。

ArcObjects SDK开发 008 从mxd地图文件说起的更多相关文章

  1. 打开地图文件和shape文件代码加载Mxd文档

    代码加载Mxd文档 用代码添加Mxd文档,用到AxMapControl.LoadMxFile(sFilePath),我们只要将Mxd文档的路径传给这个方法即可 /// <summary>  ...

  2. 《HTML 5网页开发实例具体解释》文件夹

    第一篇  从宏观上认识HTML 5 讲述了HTML 5引发的Web革命.HTML 5的总体特性.HTML 5相关概念和框架和开发环境搭建. 第1章 HTML 5引发的Web革命 1.1  你是不是真的 ...

  3. Expo大作战(三十三)--expo sdk api之MapView(地图),MailComposer(磁力传感计),Lottie(动画)

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  4. Android SDK开发与使用的那些事儿

    前言 最近由于工作需要,将应用里的部分功能独立了出来,封装成 SDK 提供给合作伙伴使用.由于经验不足,网上也没多少写这方面内容的文章,遇到了不少的坑,决定记录下来. SDK 其实,刚说到要写SDK也 ...

  5. Android studio 百度地图开发(3)地图导航

    Android studio 百度地图开发(3)地图导航 email:chentravelling@163.com 开发环境:win7 64位,Android Studio,请注意是Android S ...

  6. Android studio 百度地图开发(2)地图定位

    Android studio 百度地图开发(2)地图定位 email:chentravelling@163.com 开发环境:win7 64位,Android Studio,请注意是Android S ...

  7. Android SDK 开发指南

    Android SDK 开发指南 视频详解 以下视频是对融云 Android SDK 开发使用的详细讲解,您可以在阅读文档时配合学习.   更多视频教程如下: CSDN 融云 Android SDK ...

  8. 微信公众账号 Senparc.Weixin.MP SDK 开发教程 索引

    Senparc.Weixin.MP SDK从一开始就坚持开源的状态,这个过程中得到了许多朋友的认可和支持. 目前SDK已经达到比较稳定的版本,这个过程中我觉得有必要整理一些思路和经验,和大家一起分享. ...

  9. 高拍仪拍照SDK开发(良田影像S300L|S500L)

    高拍仪拍照SDK开发下载地址:点击下载 本SDK适用于:良田影像S300L|S500L 高拍仪如图: SDN开发包安装之后找到安装目录,如图: 大家找到各自需要的版本即可,需要注意的是如果需要上传图片 ...

  10. TortoiseSVN安装以及淘宝 TAE SDK 开发环境的搭建

    一.TortoiseSVN 的下载和安装 1.进入TortoiseSVN 官网下载地址http://tortoisesvn.net/downloads.html,根据自己的操作系统位数下载相应最新版本 ...

随机推荐

  1. IK分词器实现原理剖析 —— 一个小问题引发的思考

    前言: 网上很多的文章都建议在使用IK分词器的时候,建立索引的时候使用ik_max_word模式:搜索的时候使用ik_smart模式.理由是max_word模式分词的结果会包含smart分词的结果,这 ...

  2. 14. 第十三篇 二进制安装kube-proxy

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247484231&idx=1&sn=9e722bee ...

  3. Typora如何配置gitee图床

    转载自:https://mp.weixin.qq.com/s/5dPLbr2vFgL18XKL1Y05Og 要求: 1.Typora需要升级到最新版 2.需要安装nodejs PicGo软件下载地址: ...

  4. 从nuxt开始的SEO之路

    故事从一个"美好"的早上开始...... 大清早的来到公司,打开电脑,emm, 还是熟悉的味道,鱼儿被我摸熟了的味道......就在开始准备一天的摸鱼之旅的时候,一种不详的预感涌上 ...

  5. 【前端必会】webpack的目标代码

    背景 webpack生成什么样的代码呢?同的模块依赖的写法(import.export export default),会导致生成代码的不同,下面介绍普通的import与export 开始 导出PI1 ...

  6. MySQL数据库-数据表(下)

    分析:给 reader 表添加数据. INSERT INTO:插入数据,插入数据的时候会检查主键或者唯一索引,如果出现重复就会报错: 语法:INSERT INTO table_name VALUES ...

  7. Charles的安装与使用

    Charles是一款抓包工具,可以用来截取和发送手机APP上的各种请求 在windows上安装Charles,确保手机和电脑在同一个WIFI下,加上一些配置,就可以抓取手机上的APP请求 有能力的同学 ...

  8. MybatisPlus生成主键策略方法

    MybatisPlus生成主键策略方法 全局id生成策略[因为是全局id所以不推荐] SpringBoot集成Mybatis-Plus 在yaml配置文件中添加MP配置 mybatis-plus: g ...

  9. python基础作业2

    目录 编写一个用户认证装饰器 利用有参装饰器编写多种用户登录校验策略 利用递归函数依次打印列表中每一个数据值 获取用户权限并校验用户登录 编写一个用户认证装饰器 """ ...

  10. 齐博X1-栏目的调用2

    fun('sort@fathers',$fid,'cms')  获取上层多级栏目这样的,比如我们现在所属第三级栏目,现在可以利用这个函数获取第二级和第一级的栏目,当然自身也会被调用出来,所以此函数用的 ...