ArcPY常用函数和属性(ArcGISPro版)

官方文档
教程2

import arcpy

aprx = arcpy.mp.ArcGISProject("CURRENT")     # 获取地图文档

mapdoc = aprx.listMaps()[0]   #加载地图 可以通过名称进行筛选
lyt = aprx.listLayouts()[0]   #加载布局

mapframe = lyt.listElements("MAPFRAME_ELEMENT")[0]  #加载地图框

mapframe的属性和方法
1.返回图层中所有要素或仅仅所选要素的图层范围。
getLayerExtent (layer, {
    
    selection_only}, {
    
    symbolized_extent})	

2.使用新 Extent 对象可平移和居中 MapFrame,而无需更改地图框的比例。
panToExtent (extent)	

3.修改 MapFrame 视图以便与所有图层或地图中所选图层的范围相匹配。
zoomToAllLayers ({
    
    selection_only}, {
    
    symbolized_extent}):
 mapframe.zoomToAllLayers(True)  #缩放至所选要素

4.修改 MapFrame 视图以便与通过空间书签存储的视图信息相匹配。
zoomToBookmark (bookmark)




# 加载图层
lyr = mapdoc.listLayers('js')[0]


mapdoc.addDataFromPath('D:/work/js.shp')  #添加图层

Camera类的属性和方法
1.getExtent()和setExtent()
使用MapFrame类的Camera属性控制地图框的范围。虽然extent不是Camera类的直接属性,但它是基于X、Y
和scale属性的派生属性。为了方便使用范围,Camera类包括两个方法:getExtent()用于获取2D地图框的现有范围,setExtent()
用于根据现有的Extent对象设置地图的范围。一个常见的任务是使多个地图框的范围相同,这些方法可以用于此任务。
# import
# arcpy
# aprx = arcpy.mp.ArcGISProject("C:/Mapping/Demo.aprx")
# lyt = aprx.listLayouts("Parks")[0]
# mf1 = lyt.listElements("MAPFRAME_ELEMENT", "Park A")[0]
# ext = mf1.camera.getExtent()
# mf2 = lyt.listElements("MAPFRAME_ELEMENT", "Park B")[0]
# mf2.camera.setExtent(ext)
# aprx.save()
# del aprx

2.比例尺
mapframe.camera.scale  

3.朝向	
mapframe.camera.heading  (可读写)  Double类型
用于获取或设置地图视图旋转值。同时也被称为偏航角或方位角。用于表示地图数据将从正北方向按逆时针旋转的度数。要顺时针旋转,可使用负值。对 2D 和 3D 地图类型均适用。

4.视角(俯视仰视)
mapframe.camera.pitch  (可读写)  Double类型
用于获取或设置地图视图俯仰角。俯仰角等效于将机头向上或向下移动(沿着穿过飞机机翼的轴进行旋转)。向前观察,正值则高于地平线(指向上方),负值则低于地平线(指向下方)。2D 地图类型的值为 -90.0(从上方竖直向下观察)。

5.mode(只读) 返回照相机的查看器模式。每个查看器模式均支持不同的照相机属性集合。 String 类型
GLOBAL—支持非投影坐标系的 3D 地图。
LOCAL—仅支持本地坐标系的 3D 地图。
MAP—2D 地图。




#按属性选择要素
arcpy.SelectLayerByAttribute_management(<input feature layer or table view>,{
    
    selection method},{
    
    where clasuse})
#例如:
query = "FID={0}".format(fidIdx)
arcpy.SelectLayerByAttribute_management(lyr, "NEW_SELECTION", query)
NEW_SELECTION:创建一个新选择内容,默认选择方式。
ADD_TO_SELECTION:根据查询条件,将选择内容添加到现有的选择内容中。
REMOVE_FROM_SELECTION:根据查询条件,将选择内容从现有的选择内容中移除。
SUBSET_SELECTION:将选择内容与现有的选择内容组合,返回相同的选择内容。
SWITCH_SELECTION:选择未选择内容,移除已选择的内容。
CLEAR_SELECTION:移除所有选择内容。


#更新数据源
cp = lyr.connectionProperties
cp['connection_info']['database'] ='C:\\Projects\\YosemiteNP\\Data_New'
cp['dataset'] = 'NewRoads.shp'
lyr.updateConnectionProperties(lyr.connectionProperties, cp)

# 更新布局范围
extent = df.getLayerExtent(lyr)
df.setExtent(lyr.getExtent())

# 输出为PNG
lyt.ExportToPNG(export_path, resolution=100)

猜你喜欢

转载自blog.csdn.net/qq_45373844/article/details/130041971