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

简介:
+关注继续查看

本节书摘来自异步社区《基于ArcGIS的Python编程秘笈(第2版)》一书中的第2章,第2.9节,作者: 【美】Eric Pimpler(派普勒) 更多章节内容可以访问云栖社区“异步社区”公众号查看。

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”图层的上方或下方。


1bec885ac0da30d1136b33c71289323fdf6a640b

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

(1)在ArcMap中打开C:ArcpyBookCh2Crime_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:ArcpyBookcodeCh2InsertLayerMapDocument.py解决方案文件来检查代码。

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


c82d2f609486ac71ff81bb4c6afe3ec2b64eec34

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


4f6944be814c29ca4440c4383568c2e6a5db0517

2.9.4 拓展
图层在数据框或图层组中的位置是可以改变的。MoveLayer()函数提供了在数据框或图层组中移动图层位置的功能,但是图层的移动只能在同一个数据框内,而不能把一个数据框中的图层移动到另一个数据框中。同InsertLayer()函数一样,MoveLayer()函数需要引用参考图层来改变图层的位置。
相关文章
|
10月前
|
数据可视化 数据管理 API
​​​​​​​ARCGIS API for Python进行城市区域提取
​​​​​​​ARCGIS API for Python进行城市区域提取
​​​​​​​ARCGIS API for Python进行城市区域提取
|
Python
用python偷懒Arcgis(地类编码转地类名称)
在二调中,小班的属性都是用的编码,本文以地类编码为例,如何利用python把代码转化为名称。 excel数据 这里需要整理一份分类系统表的数据,如图: python代码 # -*- coding: utf-8 -*- def getdl(j): import xlrd workbook = xlrd.
1843 0
|
定位技术 Python
《基于ArcGIS的Python编程秘笈(第2版)》——导读
本书将介绍如何使用Python语言来创建桌面ArcGIS环境下的地理处理脚本、工具和快捷方式等。并通过介绍如何使用Python语言和桌面ArcGIS来自动执行地理处理任务、管理地图文档和图层、查找和修复丢失的数据链接、编辑要素类和表中的数据等,以期能够有效地提高GIS工作人员的工作效率。
2952 0
推荐文章
更多