《基于ArcGIS的Python编程秘笈(第2版)》——2.9 插入图层到地图文档

2.9 插入图层到地图文档

AddLayer()函数可以用来将图层添加到地图文档中,图层添加到数据框中的位置可以使用自动排序方式放置,也可以使用BOTTOM或TOP参数将图层置于顶层或底层。但是,AddLayer()函数没有提供把图层插入到数据框中某个指定位置的功能。要实现该功能,可以使用InsertLayer()函数。本节将介绍如何将图层添加到数据框中的指定位置。
**
2.9.1 准备工作**
AddLayer()函数仅仅提供把图层添加到数据框或图层组中的功能,并且只可以使用自动排序方式自动地放置图层的位置,或者选择放置在顶层或底层。然而,使用InsertLayer()函数可以准确地指定图层添加到数据框或图层组中的位置。InsertLayer()函数使用一个参考图层来指定位置,新图层将会添加在指定参考图层的上方或下方。因为InsertLayer()函数需要使用参考图层,所以不能对空数据框使用该函数。如图2-7所示,“District_Crime_Join”是参考图层,“School_Districts”是将要添加的图层,使用InsertLayer()函数可以把“School_Districts”图层添加到“District_Crime_Join”图层的上方或下方。

**
2.9.2 操作方法**
下面按步骤介绍如何使用InsertLayer()函数把图层插入到数据框中。

(1)在ArcMap中打开C:\ArcpyBook\Ch2\Crime_Ch2.mxd。

(2)单击ArcMap“标准”工具条上的“Python”按钮。

(3)导入arcpy.mapping模块。

import arcpy.mapping as mapping

(4)引用当前活动的地图文档(Crime_Ch2.mxd),把该引用赋值给变量。

mxd = mapping.MapDocument("CURRENT")

(5)获取对Crime数据框的引用。

df = mapping.ListDataFrames(mxd, "Crime")[0]

(6)定义参考图层。

refLayer = mapping.ListLayers(mxd, "Burglaries*", df)[0]

(7)定义相对于参考图层的插入图层。

insertLayer =
mapping.Layer(r"C:\ArcpyBook\data\CityOfSanAntonio.gdb\
Crimes2009")

(8)将图层插入到数据框中。

mapping.InsertLayer(df,refLayer,insertLayer,"BEFORE")

(9)可以通过查看 C:\ArcpyBook\code\Ch2\InsertLayerMapDocument.py解决方案文件来检查代码。

(10)运行代码。“Crimes2009”要素类作为一个图层添加到数据框中,如图2-8所示。

2.9.3 工作原理
首先,导入arcpy.mapping模块,获取对当前的地图文档文件和Crime数据框的引用。接着,定义参考图层,通过调用ListLayers()函数,传入“Burglaries*”通配符参数和Crime数据框参数来限制返回的图层列表,使图层列表中只包含“Burglaries in 2009”图层这一项元素;使用0索引值来检索Python列表中的第1个图层,并把该图层赋值给图层对象(refLayer)。然后,定义插入图层,引用CityOfSanAntonio地理数据库中的“Crimes2009”要素类,将其赋值给新的图层对象(insertLayer)。最后,调用InsertLayer()函数,传入数据框、参考图层、插入图层和BEFORE(表明插入的图层置于参考图层的上方)4个参数。结果如图2-9所示。

2.9.4 拓展
图层在数据框或图层组中的位置是可以改变的。MoveLayer()函数提供了在数据框或图层组中移动图层位置的功能,但是图层的移动只能在同一个数据框内,而不能把一个数据框中的图层移动到另一个数据框中。同InsertLayer()函数一样,MoveLayer()函数需要引用参考图层来改变图层的位置。

时间: 2024-03-05 07:43:23

《基于ArcGIS的Python编程秘笈(第2版)》——2.9 插入图层到地图文档的相关文章

《基于ArcGIS的Python编程秘笈(第2版)》——2.8 添加图层到地图文档

本节书摘来自异步社区<基于ArcGIS的Python编程秘笈(第2版)>一书中的第2章,第2.8节,作者: [美]Eric Pimpler(派普勒) 更多章节内容可以访问"异步社区"公众号查看. 2.8 添加图层到地图文档 在很多情况下都需要把图层添加到地图文档中.制图模块提供了AddLayer()函数来实现这一功能.本节将介绍如何使用AddLayer()函数把图层添加到地图文档中. 2.8.1 准备工作 arcpy.mapping模块提供了在已有的地图文档中添加图层或图层

《基于ArcGIS的Python编程秘笈(第2版)》——第2章 管理地图文档和图层2.1 引言

第2章 管理地图文档和图层 基于ArcGIS的Python编程秘笈(第2版)本章将介绍以下内容. 引用当前的地图文档. 引用磁盘上的地图文档. 获取地图文档的图层列表. 限制图层列表. 缩放至所选要素. 更改地图范围. 添加图层到地图文档. 插入图层到地图文档. 更新图层的符号系统. 更新图层属性. 操作数据框中启用时间的图层. 2.1 引言 ArcPy制图模块提供了自动化的制图功能,包括管理地图文档和图层文件,以及这些文件中的数据.此外,还提供自动导出和打印地图.创建PDF地图册和将地图文档发

《基于ArcGIS的Python编程秘笈(第2版)》——导读

前言 ArcGIS是Esri公司研发的构建于工业标准之上的地理信息系统软件系列的总称. 本书将介绍如何使用Python语言来创建桌面ArcGIS环境下的地理处理脚本.工具和快捷方式等.并通过介绍如何使用Python语言和桌面ArcGIS来自动执行地理处理任务.管理地图文档和图层.查找和修复丢失的数据链接.编辑要素类和表中的数据等,以期能够有效地提高GIS工作人员的工作效率. 本书首先介绍了桌面ArcGIS环境中Python编程的基本概念,然后通过具体的操作方法来介绍如何使用Python编程实现A

《基于ArcGIS的Python编程秘笈(第2版)》——第1章 面向ArcGIS的Python语言基础

第1章 面向ArcGIS的Python语言基础 同其他编程语言一样,Python也支持多种类型的程序架构.本章主要介绍Python的基本语言架构.首先,介绍如何创建新的Python脚本及编辑已有的脚本:其次,介绍Python语言的特点,如添加注释.创建变量并赋值.创建内置变量等,以使Python的代码更加简单明了. 然后,介绍Python语言提供的各种内置数据类型,如字符串.数字.列表和字典等.类和对象是Python等面向对象编程语言的基本概念,在使用ArcGIS编写地理处理脚本时会经常用到它们

《基于ArcGIS的Python编程秘笈(第2版)》——2.2 引用当前的地图文档

2.2 引用当前的地图文档 在ArcGIS Python窗口或自定义的脚本工具中运行地理处理脚本时,经常需要引用当前加载在ArcMap中的地图文档.通常来讲,在对地图文档中的图层和表执行地理处理操作之前,需要引用当前的地图文档.本节将介绍如何在Python地理处理脚本中引用当前的地图文档. 2.2.1 准备工作在对地图文档执行任何操作之前,都需要先在Python脚本中引用地图文档,可以通过调用arcpy.mapping模块中的MapDocument()函数来实现.引用地图文档的途径有两种:一是引

《基于ArcGIS的Python编程秘笈(第2版)》——2.10 更新图层的符号系统

2.10 更新图层的符号系统 有时候需要改变地图文档中图层的符号系统,可以通过使用UpdateLayer()函数来实现,该函数还可以改变图层的各种属性.本节将介绍如何使用UpdateLayer()函数更新图层的符号系统. 2.10.1 准备工作 arcpy.mapping模块的UpdateLayer()函数具有更新图层符号系统的功能.例如,可以将图层的符号系统由分级颜色更新为分级符号,如图2-10所示.UpdateLayer()也可以用来更新各种图层属性,但在默认情况下是更新符号系统.因为Upd

《基于ArcGIS的Python编程秘笈(第2版)》——2.3 引用磁盘上的地图文档

2.3 引用磁盘上的地图文档 除了可以引用ArcMap中当前活动的地图文档,还可以使用MapDocument()函数访问存储在本地或网络驱动器上的地图文档文件.本节将介绍如何访问本地或网络驱动器上的地图文档. 2.3.1 准备工作 正如前文所述,引用存储在本地计算机或共享服务上的地图文档,只需要提供地图文档文件的路径.这种引用地图文档的方法更为通用,因为使用该方法可以在ArcGIS Python窗口以外(IDLE等其他开发环境中)运行脚本.接下来讨论脚本中函数的参数,程序员可以根据需要每次输入一

《基于ArcGIS的Python编程秘笈(第2版)》——1.4 总结

1.4 总结 本章介绍了Python编程的基本概念,理解这些基本概念才能编写出有效的地理处理脚本.在本章的开头简略介绍了如何在IDLE开发环境下编写和调试Python脚本,讲解了如何创建一个新的脚本.编辑已有的脚本.检查语法错误和运行脚本等.本章还介绍了基本的语言结构,包括导入模块.创建变量并为其赋值.if/else语句.循环语句以及各种数据类型(如字符串.数字.布尔型.列表.字典和对象等).最后介绍了如何读取和写入文本文件.

《基于ArcGIS的Python编程秘笈(第2版)》——2.4 获取地图文档中的图层列表

2.4 获取地图文档中的图层列表 大多数情况下,获取地图文档中的图层列表是地理处理脚本中的首要工作之一.获取图层列表后,脚本可以循环遍历每个图层并执行某些类型的处理.制图模块中的ListLayers()函数提供获取图层列表的功能.本节将介绍如何获取地图文档中的图层列表.2.4.1 准备工作 arcpy.mapping模块包含各种列表函数,使用列表函数可以返回图层.数据框.丢失的数据源.表视图和布局元素等对象的列表.在多步骤的处理过程中,通常先使用列表函数返回Python列表,从返回的列表中获取一