课本_第四章、地图数据框

发布时间 2023-05-10 11:21:31作者: Agiser0

 

--查看当前数据框
adf = mxd.activeDataFrame   #此处对应mxd对象
 
--列举所有数据框
1 dfs = mp.ListDataFrames(mxd)  #此处对应 mapping  附加库
2 for df in dfs:
3     print(df.name)

 

--动态旋转地图
 1 adf.rotation = i    #属性   旋转i度
 2 time.sleep(secs)    #方法   进程挂起 secs 秒
 3  4 ap.RefreshActiveView()   #刷新活动视图
 5 ap.RefreshTOC()          #刷新内容列表--左侧
 6 ap.RefreshCatalog()      #刷新目录--右侧
 7  8  9 10 11 import time
12 angles = range(1,30) + range(30,-1,-1)
13 for i in angles:
14     adf.rotation = i
15     ap.RefreshActiveView()
16     time.sleep(0.05)

 

--查看数据框的空间参考
sr = adf.spatialReference
sr.name

 

--更改数据框显示范围
adf.zoomToSelectedFeatures()     
ap.RefreshActiveView()    #缩放至选择要素
#当没有选择要素时,显示全图

 

--模拟动态跟踪目标
 1 zip()  用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回有这些元组组成的列表
 2 xs = [1,2,3]
 3 ys = [4,5,6]
 4 zip(xs,ys)
 5 [(1,4),(2,5),(3,6)]
 6 #可以利用这个函数的组织方式来创建面对象
 7 ap.Extent(XMin,YMin,XMax,YMax)  #创建范围,范围是左下角和右上角坐标确定的一个矩形,单位是地图单位
 8 adf.panToExtent(extent)   #平移至指定范围
 9 10 11 12 13 import numpy as np
14 ext = adf.extent    #这一步要确保窗口的显示范围是最大显示范围
15 xs = np.linespace(ext.XMin,ext.XMax,50)
16 ys = np.linespace(ext.YMin,ext.YMax,50)
17 xys = zip(xs,ys)
18 adf.scale = 250000   #确定比例尺
19 for xy in xys:
20     x = xy[0]
21     y = xy[1]
22     extent = ap.Extent(x,y,x,y)
23     adf.panToExtent(extent)
24     ap.RefreshActiveView()
25     time.sleep(0.05)