天天看點

《基于ArcGIS的Python程式設計秘笈(第2版)》——2.7 改變地圖範圍

本節書摘來自異步社群《基于arcgis的python程式設計秘笈(第2版)》一書中的第2章,第2.7節,作者: 【美】eric pimpler(派普勒) 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

很多時候我們需要改變地圖的範圍,常見的情況有以下兩種:一是在自動生成地圖的過程中,二是在需要建立不同區域或要素的地圖時。arcpy提供了一些可以改變地圖範圍的方法,本節将使用定義表達式來改變地圖範圍。

2.7.1 準備工作

dataframe 類的 extent 屬性可以用來設定地圖的範圍,它經常同 layer.definitionquery屬性一起使用來定義圖層的定義查詢屬性(即定義表達式)。本節将介紹如何使用這些類(dataframe、layer)與屬性(dataframe.extent和layer.definitionquery)來改變地圖範圍。

2.7.2 操作方法

下面按步驟介紹如何使用定義表達式改變地圖範圍。

(1)在arcmap中打開c:arcpybookch2crime_ch2.mxd。

(2)單擊arcmap“标準”工具條上的“python”按鈕。

(3)導入arcpy.mapping子產品。

mxd = mapping.mapdocument("current")

for df in mapping.listdataframes(mxd):

if df.name == 'crime':

layers = mapping.listlayers(mxd,'crime density by

school district',df)

for layer in layers:

query = '"name" = 'lackland isd''

layer.definitionquery = query

df.extent = layer.getextent()