使用数据驱动页面(DDP)创建具有相同范围但不同层的地图集?


9

是否可以利用ArcMap或ArcPy中的数据驱动页面(DDP)工具来创建一组具有相同范围但显示不同图层的地图?

为了澄清起见,我会定期为大型项目地图制作所有地图,这些项目通常都位于同一位置,并且具有相同的基本图层,但是为了针对报告相关部分的不同方面(例如监视位置,土地使用,关键特征等)进行了修改,以使其重点突出。需要创建和维护单独的.mxds。

一个DDP类型的系统将允许我利用动态文本并确保整个过程中使用标准模板/输出,并且当更新一个通用数字或注释时,由于报表以一个.mxd而不是多个形式编写,因此使工作变得更加轻松。一个客户。

我使用的是ArcMap 10.1,但是通读了ArcGIS DDP联机帮助后,我认为必须使用ArcPy才能完成此操作,因为我一直无法弄清楚如何在ArcMap中进行操作。我知道QGIS具有Atlas插件,尽管我对其功能并不熟悉,但是很乐意将其用作替代方案。


1
我认为您正在寻找的是通过使用arcpy.mapping工具集在Python中编写地图文档更改的脚本。请参阅有关构建完整地图册的参考,尤其是在文档“简单参考丛书”中。
RyanKDalton

Answers:


4

这是我用伪代码进行的思考:您将获得MapDocument,然后是ListDataFrames,然后是ListLayers。然后,您应该能够遍历图层,将图层的“可见性”属性切换为ExportToPDF(或其他功能),然后再将“可见性”切换为关闭,然后移至下一个图层。如果要将某些图层保留为基本图层,则可以将要更改的图层分组为每个地图,并仅通过测试IsGroupLayer = True来切换这些图层的可见性?也许其他人有一个实际的代码示例...


我从来没有找到过内置的Arc解决方案,但是现在一位同事已经为遵循您建议的基本结构的过程开发了python脚本。该脚本使用组在pdf中创建新页面,并且可以与DDP结合使用以创建包含多个站点地图集的地图册。
MAJ742 2014年

5

无代码方法

打开数据驱动的页面时,可以指定依赖于页码的定义查询。只需使用该查询即可隐藏您不想显示的图层中的所有要素。

  1. 将地图框设置在相同的位置,但是要有页码字段。以页码为名称字段的设置数据驱动页面。
  2. 如果要为特定页面打开图层,请在其表中添加一个“页面”属性,并设置为相关的页面编号。
  3. 使用您新创建的字段将页面定义查询添加到特定层。

选择页面后,基于页面定义查询,所需的图层将变为可见。


2
我认为页面定义查询在某些情况下效果很好,但是问题是您必须将相关的页面编号添加到数据表中的每个属性,并且您无法在多个页面上显示相同的功能,因为您只能引用一个一次一页
MAJ742
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.