《基于ArcGIS的Python编程秘笈(第2版)》——2.7 改变地图范围

2.7 改变地图范围

很多时候我们需要改变地图的范围,常见的情况有以下两种:一是在自动生成地图的过程中,二是在需要创建不同区域或要素的地图时。arcpy提供了一些可以改变地图范围的方法,本节将使用定义表达式来改变地图范围。

2.7.1 准备工作
DataFrame 类的 extent 属性可以用来设置地图的范围,它经常同 Layer.definitionQuery属性一起使用来定义图层的定义查询属性(即定义表达式)。本节将介绍如何使用这些类(DataFrame、Layer)与属性(DataFrame.extent和Layer.definitionQuery)来改变地图范围。

2.7.2 操作方法
下面按步骤介绍如何使用定义表达式改变地图范围。

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

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

(3)导入arcpy.mapping模块。

import arcpy.mapping as mapping
.```
(4)引用当前活动的地图文档(Crime_Ch2mxd),把该引用赋值给变量。

```javascript
mxd = mapping.MapDocument("CURRENT")

(5)创建for循环来遍历地图文档中的所有数据框。

for df in mapping.ListDataFrames(mxd):

(6)查找Crime数据框和该数据框内的指定图层,这个图层将用于定义查询。

if df.name == 'Crime':
  layers = mapping.ListLayers(mxd,'Crime Density by
  School District',df)

(7)创建for循环来遍历图层。尽管layers列表中只有一项元素,但是这里也使用循环来遍历。在for循环中,创建一个定义表达式,并设置新的数据框范围。

for layer in layers:
  query = '"NAME" = \'Lackland ISD\''
  layer.definitionQuery = query
  df.extent = layer.getExtent()

(8)完整的脚本如图2-4所!示,也可以查看C:\ArcpyBook\code\Ch2\ChangeMapExtent.py解决方案文件来检查代码。

(9)保存并运行脚本。此时数据视图的范围已经更新,因此只显示与定义表达式相匹配的要素,如图2-5所示。

**
2.7.3 工作原理**
本节使用图层的定义查询属性来更新地图范围。首先,在脚本结尾处创建query变量来存放定义表达式,设置定义表达式,查找名为Lackland ISD的学校区域。然后,将query变量存储的字符串赋值给 definitionQuery 属性。最后,设置 df.extent 属性为layer.getExtent()方法返回的值。

时间: 2024-09-17 03:31:37

《基于ArcGIS的Python编程秘笈(第2版)》——2.7 改变地图范围的相关文章

《基于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版)》——第1章 面向ArcGIS的Python语言基础

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

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

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

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

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

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

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

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

1.3 Python语言基础 了解Python语言的基本架构,有助于读者更有效地编写ArcGIS地理处理脚本.尽管Python语言相对于其他编程语言来说更易学,但要想真正掌握它,也需要花一定的时间来学习和练习.本节将介绍如何创建变量及给变量赋值,可赋值给变量的数据类型,如何使用不同类型的语句和对象,如何读写文件和导入Python第三方模块等内容. 1.3.1 代码注释 编写Python脚本时,一般都需要遵循约定俗成的程序架构.通常在每个脚本的开头是说明部分,用来说明脚本的名称.作者和处理过程的梗

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

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

《基于ArcGIS的Python编程秘笈(第2版)》——1.2 ArcGIS Python窗口的使用

1.2 ArcGIS Python窗口的使用 1.1节介绍了如何使用Python的IDLE开发环境,本节给出一个地理处理脚本实例来说明如何使用ArcGIS Python窗口.刚开始编写代码时,人们通常在桌面ArcGIS Python窗口中编写脚本,当脚本越来越复杂时,会转向使用IDLE或者其他开发环境. 1.2.1 ArcGIS Python窗口 ArcGIS Python窗口是桌面ArcGIS 10.x中的一个嵌入式.交互式的窗口,它在测试小型代码块.学习Python基础知识.建立方便快捷的工