本節書摘來自異步社群《基于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()