Python和ArcGIS自动化制图完全指南(二):制作mxd模板 v3

前言:mxd 模板是我们出图的标准样式,我们所有的成果图都是以 mxd 模板为基础。模板文件不要求对某些特定数据进行特定的展示(设置定义查询语句)等等,但是额外的,模板文件需要多添加一个 MappingIndex(制图索引)图层...Note: 批量生成的地图都是通过一个或者多个 mxd 模板来生成的。其原理在《指南》的前言章节中有相关的说明。1.初始数据

我们结合案例来说明“...以地级市为单位,对中国某省份的地级市制作铁路、道路分布的专题图...”原始数据如下:

buidings用于显示建筑物landuse用于显示部分的土地利用情况natural用于显示自然地物railways用于显示铁路,线要素roads用于显示道路,线要素waterways用于显示水系,线要素(不会使用到水系)市级区域&市界市界是由市级区域数据转线要素得到。市界用于显示不同地级市之间的界线,而市级区域图层用于显示标注,显示各地级市的名称;同时也会用于制作 MappingIndex 图层(之后会说到)。选取了四川省17个地级市作为案例来具体的说明和分析。

2.原始数据的处理

制作专题图时,我们会凸显当前制图单位的信息,而部分隐藏其他单位的信息,如下图所示:

在 mxd 中如何实现该功能呢?大家都知道要使用图层的定义查询功能。这里也不例外,只不过需要人为处理一下数据。在最后会让计算机一个图层一个图层的、一个 mxd 文件一个 mxd 文件自动的设置定义查询语句。现在需要使用市级区域图层对基础信息图层如 buidings、landuse、natural、railways、roads 执行标识(或者相交)操作,目的是分割基础信息图层并将市级区域图层的字段属性赋予给该图层 (如市级区域图层的 CITY 字段)。如下图所示:处理完成后的 roads 图层的属性表中已经有了 CITY 字段,而该字段会被用于定义查询。

Note:标识:该工具位于分析工具>叠加分析>标识相交:该工具位于分析工具>叠加分析>相交标识和相交处理数据都不会直接覆盖原数据,所以需要手动重命名、替换数据。如果数据量大,可以编写代码来完成一系列操作。3.MappingIndex

MappingIndex。它是一个面矢量图层,需要自己创建。他有如下几个功能:如它的名字所示,MappingIndex,他类似一个索引文件,我们编写的自动制图工具就是以该图层作为顺序依次进行 mxd 文件的制作、地图的导出。MappingIndex 中有多少个要素(属性表有多少条),就表示有多少个制图单位,整个系统就会制作多少个地图。使用 CITY 字段的值作为定义查询语句的参数。该图层中也必须有作为定义查询的字段存在。在这个案例中,这个字段就是 CITY 字段。整个系统就是从该图层的 CITY 字段中读取数据,然后对每一个图层的定义查询语句进行更新。这样才能保证自动更新,不然最后输出的所有地图都是一样的。使用 PAGESIZE 字段的值适配模板大小。在运行我们最终编写的自动制图程序后,程序会自动给该图层添加一个名为 PAGESIZE 的字段。并且会计算各个制图单位(各地级市)在当前比例尺下的最小制图尺寸——宽和高。用于适配不同大小的 mxd 模板(因为有的地级市很大,有的很小,就像同一件衣服不会同时适合一个胖子和一个瘦子)。之前我们就说过,无法通过 ArcPy 来修改出图的页面大小的,所有我们要制作几个不同尺寸的 mxd 供程序选择大小合适的模板。根据以上几个功能来看,市级区域图层就满足我们的要求,所以我们可以直接复制市级区域这个图层,然后重命名为 MappingIndex 图层即可。4.不同大小的模板

17个地级市,有大有小,有长条状的也有呈躺卧状的。所以就需要制作几个不同大小的模板来适应需求,因为单单使用 arcpy 是无法直接修改页面大小的。如下图所示,我们可以将 ArcMap 的布局界面分成两个区域:蓝色区域:具体显示地图地理信息内容的区域。红色区域:整个地图区域,包括了地图显示区域,以及必要的文字描述、四周的留白和花纹等。在 mxd 模板与制图单位相适配的过程中,其比较的大小就是对比蓝色区域的大小。(如果使用红色区域也可以,只是最后计算尺寸需要减去四周白边的距离)

制作了3种不同大小的 mxd 模板:1080x700(完整页面大小为1100x900)1080x1300(完整页面大小为1100x1500)1180x900(完整页面大小为1200x1100)名字分别为:1080x700.mxd、1080x1300.mxd、1180x900.mxd。Note: mxd 模板文件的命名方法必须按照 宽x高 的方式来命名,因为程序是会读取模板文件的名称。

5.完成的 mxd 模板展示

最终制作完成的模板展示

内容列表

布局视图结束语

全套资源免费下载:演示文件数据源代码《指南》文档小册子,便于电脑查看

(0)

相关推荐

  • 重新划分广州600 商圈的方法,我们找到了丨商圈观察

    [编者按]集聚是线下商业底色,不同聚集有不同商业价值.商圈研究终极目的是提升品牌.开发商对商圈价值适配性. 为此,<商圈观察>系列第3篇,着重介绍赢在选址商圈识别与分级依据.逻辑,并以广州 ...

  • uml图怎么画?制图教程送你

    工作生活中总是需要用到各种图的绘制,像思维导图和流程图这种是非常常用的两种.不过都对于部分朋友是不太清楚用什么来制作,怎么制作.就好比之前我在需要绘制uml图时,但是因为自己不知道怎么操作,所以也是不 ...

  • Python和ArcGIS自动化制图完全指南 总集篇

    前言:<Python和ArcGIS自动化制图完全指南>该系列包括前言共五章,内容多且详细.总集篇带大家快速梳理掌握各章节的要点,同时解答之前收集到的一些问题...<前言篇> 查 ...

  • 【干货】Python和ArcGIS自动化制图完全指南 总集篇

    前言:<Python和ArcGIS自动化制图完全指南>该系列包括前言共五章,内容多且详细.总集篇带大家快速梳理掌握各章节的要点,同时解答之前收集到的一些问题...<前言篇> 查 ...

  • Python和ArcGIS自动化制图完全指南(一):使用ArcPy完成工作流 v3

    前言:哪怕是0基础的你也可以在不打开 ArcGIS 软件的情况下,使用 ArcPy 调用其最多1000多种工具并实现各种复杂或重复的工作流,同时具有很大的灵活度.使用了一个简单的例子做最后的展示. 1 ...

  • Python和ArcGIS自动化制图完全指南(三):分配模板 v3

    前言:在<指南>第二章中,我们制作了3种不同尺寸的 mxd 模板,就是为了适配不同的制图单位,比如适配自贡市的 mxd 模板就不适用于广元市(广元市面积大).而如何让计算机给不同制图单位分 ...

  • Python和ArcGIS自动化制图完全指南(四):自动制图 v3

    前言:在完成了<指南>第二章和第三章后,获得了 PAGESIZE 字段的值,终于来到了最后的制图阶段.运用 Python 和 ArcPy 自动设置 mxd 模板定义查询语句.图框居中.图层 ...

  • Python和ArcGIS自动化制图完全指南:前言 v3

    前言:下文以<指南>代替本系列文章名称.在该指南中,我们将手把手的讲解如何使用 Python(ArcPy) 这门编程语言实现 ArcGIS 自动化的更新制图等操作.在学完所有文章后,读者可 ...

  • 《Python和ArcGIS自动化制图完全指南》V3 版本全部修改完成

    该指南从去年开始整理书写,完成了第一个版本. 再回头重新审视,发现了各种稀奇古怪的问题,要么排版丑陋,或者文字狗屁不通. 特别是微信对于代码的排版让我非常崩溃,它会自动将过长的代码换行,这对于代码的阅 ...

  • 安全创业指南二:如何避免图片侵权

    最近这两年,杰哥在闲暇时跟圈内一些朋友交流时发现,站长圈也好,自媒体圈也好,现在大家踩雷最多的,就是版权问题,尤其图片版权,一旦不小心误用,很快就有版权机构上门来找你索赔打官司,做的越大,越容易被他们 ...

  • 代码详解:Python正则表达式的终极使用指南

    全文共8032字,预计学习时长16分钟 处理文本数据的一个主要任务就是创建许多以文本为基础的特性. 人们可能想要在文本中找出特定格式的内容,比如找出存在于文本中的电子邮件,或者大型文本中的电话号码. ...