《基于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()函数需要引用参考图层来改变图层的位置。
相关文章
|
11月前
|
数据采集 Python
Python实用记录(七):通过retinaface对CASIA-WebFace人脸数据集进行清洗,并把错误图路径放入txt文档
使用RetinaFace模型对CASIA-WebFace人脸数据集进行清洗,并将无法检测到人脸的图片路径记录到txt文档中。
255 1
|
11月前
|
Python
Python实用记录(六):如何打开txt文档并删除指定绝对路径下图片
这篇文章介绍了如何使用Python打开txt文档,删除文档中指定路径的图片,并提供了一段示例代码来展示这一过程。
131 1
|
6月前
|
数据可视化 前端开发 数据挖掘
使用Folium在Python中进行地图可视化:全面指南
Folium是基于Python的交互式地图可视化库,依托Leaflet.js实现地理空间数据展示。本文从安装、基础使用到高级功能全面解析Folium:包括创建地图、添加标记、保存文件,以及绘制热力图、多边形和Choropleth地图等高级操作。通过展示北京市景点与全球地震数据的实际案例,结合性能优化、自定义样式和交互性增强技巧,帮助用户掌握Folium的核心功能与应用潜力,为数据分析提供直观支持。
422 2
|
11月前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
524 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
11月前
|
计算机视觉 Python
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
这篇文章介绍了如何使用Python的OpenCV库将多张图片合并为一张图片显示,以及如何使用matplotlib库从不同txt文档中读取数据并绘制多条折线图。
150 3
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
|
11月前
|
人工智能 开发者 Python
python读取word文档 | AI应用开发
在RAG系统中,构建知识库时需读取多种外部文档,其中Word文档较为常见。本文介绍如何使用`python-docx`库读取Word文档(.docx格式)中的标题、段落、表格和图片等内容。首先通过`pip install python-docx`安装库,然后利用提供的接口提取所需信息。尽管该库功能强大,但在识别标题样式时需自定义逻辑,并且仅提供图片的URI而非直接加载。示例代码展示了读取文本、识别标题、读取表格及获取图片URI的方法。【10月更文挑战第2天】
456 2
|
11月前
|
小程序 定位技术 Python
Python编程:根据经纬度生成并调用地图
Python编程:根据经纬度生成并调用地图
216 2
|
JSON 测试技术 API
Python开发解析Swagger文档小工具
文章介绍了如何使用Python开发一个解析Swagger文档的小工具,该工具可以生成符合httprunner测试框架的json/yaml测试用例,同时还能输出Excel文件,以方便测试人员根据不同需求使用。文章提供了详细的开发步骤、环境配置和使用示例,并鼓励读者为该开源项目贡献代码和建议。
461 1
Python开发解析Swagger文档小工具
|
12月前
|
存储 数据采集 关系型数据库
Python之文档数据存储
Python之文档数据存储
81 2
|
11月前
|
IDE 开发工具 Python
Python自动化操作word--批量替换word文档中的文字
Python自动化操作word--批量替换word文档中的文字
617 0

推荐镜像

更多