- arcpy.mapping 教程入门
- arcpy.mapping 指导原则
- 按字母顺序排序的 arcpy.mpping 类列表
- 按字母顺序排序的 arcpy.mpping 函数列表
- 按字母顺序排序的 arcpy.mapping 常量列表
参考:
- arcpy.mapping常用四大件-Layer
- arcpy.mapping常用四大件-MapsurroundElement
- arcpy.mapping实战-专题图制图自动化
- arcpy.mapping常用四大件-StyleItem
01 | mapping.MapDocument | 用于访问地图文档 (.mxd) 属性和方法。 | |
02 | mapping.DataFrames | 用于访问多个数据框属性的 DataFrame 对象。 | |
03 | mapping.Layer | 用于对图层的属性和方法进行访问。 | |
04 | mapping.TextElement |
页面布局中重新定位文本以及修改文本字符串和字号。 | |
05 | mapping.LegendElement | 页面布局中重新定位和调整图例元素的样式。 | |
06 | mapping.MapSurroundElement | 用于访问能够在页面布局中重新定位以及识别父数据框的属性。 | |
07 | mapping.UniqueValuesSymbology | 可访问用于更改图层唯一值符号系统外观的各种属性。 | |
08 | mapping.GraduatedColorsSymbology | 可访问用于更改图层分级色彩符号系统外观的各种属性。 | |
09 | mapping.RasterClassifiedSymbology |
用于更改图层栅格分类符号系统外观的各种属性。 | |
10 | mapping.LabelClass | 用于访问图层的标注类属性。 | |
------------------- |
-------------------------------------------------------------------------------------- |
序号 | 类名称 |
功能说明 |
语法 & 举例 | ||
01 | mapping.MapDocument |
用于访问地图文档 (.mxd) 属性和方法。对于此对象的引用对大多数地图脚本操作都十分重要。 ====<<<< Syntax >>>>==== mapping.MapDocument (mxd_path) ====<<<< Parameters >>>>==== ◈ mxd_path:一个包含现有地图文档 (.mxd) 的完整路径和文件名的字符串,或者包含关键字 CURRENT 的字符串。 ====<<<< Attributes >>>>==== ◈ activeDataFrame:返回 DataFrame 对象,当前激活的数据框。(只读) ====<<<< Methods >>>>==== ◈ save ():保存一个映射文档(.mxd) |
#通过MapDocument获取dataframe,从而获取每一个图层 import arcpy mxd = arcpy.mapping.MapDocument(r"C:ProjectProject.mxd") df = arcpy.mapping.ListDataFrames(mxd, "图层")[0] inLayer=arcpy.mapping.ListLayers(mxd, "", df) for layer in inLayer: #打印图层名称 print layer.name >>> mxd.activeView u'PAGE_LAYOUT' >>> mxd.activeView u'Layers' >>> mxd.dateSaved datetime.datetime(2018, 4, 23, 9, 51, 6) >>> mxd.pageSize PageSize(width=21.0, height=10.0) >>> mxd.saveACopy(r"D: mpalex.mxd", "9.3") |
||
02 | mapping.DataFrame |
地图文档 (.mxd) 中找到的用于访问多个数据框属性的 DataFrame 对象。对 DataFrame 对象的引用经常作为多个函数的参数使用,以便在特定数据框中过滤图层或表格。 ---------------------------------------------------------------------------------- ====<<<< Attributes >>>>==== ◈ name:返回数据框架的名字。 ---------------------------------------------------------------------------------- ====<<<< Methods >>>>==== ◈ panToExtent (extent):漫游并居中数据框架。 |
|
||
03 | mapping.Layer |
|
用于对图层的属性和方法进行访问。它可以引用地图文档 (.mxd) 或图层 (.lyr) 文件中的图层。(也可以创建栅格和矢量的图层,通过 ListRasters 函数 等实现) ====<<<< Syntax >>>>==== mapping.Layer (lyr_file_path) ====<<<< Parameters >>>>==== ◈ lyr_file_path:图层文件 (.lyr) 的完整路径和名称的字符串。也可以是 shapefile 和 raster 文件的完成路径+名称。 ====<<<< Attributes >>>>==== ◈ isFeatureLayer:返回一个字符串值,该值为地图文档路径和文件名。Boolean ====<<<< Methods >>>>==== ◈ save ():保存一个 (.lyr) 文件 |
>>> import arcpy >>> mxd = arcpy.mapping.MapDocument("current") >>> df = arcpy.mapping.ListDataFrames(mxd)[0] >>> lyrs = arcpy.mapping.ListLayers(df) >>> lyr = lyrs[4] >>> lyr <map layer u'CNTRY92'> >>> e = lyr.getExtent() >>> e <Extent object at 0x2a6d6d10[0x29dfbce0]> >>> e.XMax 180.25862595419844 >>> e.XMin -180.25862595419844 >>> arcpy.env.workspace = r"D:GeoDataWORLD" >>> shps = arcpy.ListFeatureClasses() # 新建 Layer,需要完整路径 >>> import os >>> lyr = arcpy.mapping.Layer(os.path.join(arcpy.env.workspace, shps[0])) >>> arcpy.mapping.AddLayer(df, lyr, "BOTTOM") >>> lyr.minScale 1000000000.0 >>> lyr.maxScale 1000.0 >>> lyr.maxScale = 0 >>> lyr.minScale = 0 |
|
04 | mapping.TextElement |
TextElement 对象可用于对属性进行访问,这些属性可以在页面布局中重新定位文本以及修改文本字符串和字号。 ====<<<< Attributes >>>>==== ◈ text:与元素相关联的文本字符串。String ====<<<< Methods >>>>====
◈ clone ({suffix}):提供了一种克隆页面布局中现有图形文本的机制。suffix 会在原名称后面添加相应后缀。(位置重叠) |
实现:修改文本内容
|
||
05 | mapping.LegendElement |
LegendElement 对象可用于对属性和方法进行访问,这些属性和方法用于在页面布局中重新定位和调整图例元素的大小以及修改其标题和图例项。 ====<<<< Attributes >>>>==== ◈ name:元素的名称。String ====<<<< Methods >>>>====
◈ adjustColumnCount (column_count):设置图例的列数。 |
实现: 1. 列举图例引用的图层
>>> legend = legends[0] >>> legend.items [u'CITIES', u'world'] >>> legend.title u'Legend' >>> legend.title = "图例" >>> legend.adjustColumnCount(2) |
||
06 | mapping. MapSurroundElement |
用于访问能够在页面布局中重新定位以及识别父数据框的属性。(指北针、比例尺等) ====<<<< Attributes >>>>====
◈ parentDataFrameName:读写,与此要素相关联的数据框名称。 |
>>> mse = arcpy.mapping.ListLayoutElements(mxd, "MAPSURROUND_ELEMENT") >>> mse [<MapSurroundElement object at 0x2734a970[0x27056930]>, <MapSurroundElement object at 0x2734a9f0[0x27056bb0]>] >>> mse1 = mse[0] >>> mse1.name u'Alternating Scale Bar' >>> mse2 = mse[1] >>> mse2.name u'North Arrow' >>> mse2.elementPositionX 0.5990000000001601 >>> mse2.elementPositionY 8.027599999999438 |
||
07 | mapping. UniqueValuesSymbology |
可访问用于更改图层唯一值符号系统外观的各种属性。 ====<<<< Methods >>>>==== ◈ addAllValues ():将所有唯一值添加到符号系统中。 ====<<<< Attributes >>>>==== ◈ classDescriptions:读写,用于表示各个唯一值的描述的列表。 ---------------------------------------------------------------------------------- 说明:如果需要修改图例中 label 的名称,需要通过修改 classLabels 中的名称,并将新的 list 为其赋值。(其他属性的修改方式类似) 要访问图层符号系统的所有属性和设置,例如更改单个类的单个符号,需要在 ArcMap 用户界面中进行操作,并将它们保存到图层文件中。随后可使用 UpdateLayer 函数将这些自定义设置应用于现有图层。 |
>>> import arcpy >>> mxd = arcpy.mapping.MapDocument("current") >>> df = arcpy.mapping.ListDataFrames(mxd)[0] >>> lyrs = arcpy.mapping.ListLayers(df) >>> lyr_world = lyrs[7] >>> lyr_world <map layer u'world'> >>> lyr_world.symbologyType u'UNIQUE_VALUES' >>> uvs = lyr_world.symbology # 获取对应的 label 值对应的列表 >>> list = uvs.classLabels # 修改相关的值 >>> list[1] = "alex" >>> list[0] = "alex" # 将 list 进行赋值,可以在图例上面显示差别 >>> uvs.classLabels = list >>> arcpy.RefreshActiveView() |
||
08 | mapping. GraduatedColorsSymbology |
可访问用于更改图层分级色彩符号系统外观的各种属性。 ====<<<< Methods >>>>==== ◈ reclassify ():将图层符号系统重置为图层数据源信息和统计数据。 ====<<<< Attributes >>>>==== ◈ classBreakDescriptions:读写,用于表示各个类别明细值描述的字符串的排序列表。 |
>>> sym = lyr_world.symbology >>> sym <GraduatedColorsSymbology object at 0x26b4f8b0[0xb104580]> >>> sym.classBreakLabels [u'1041.095 - 114334.976', u'114334.977 - 309842.694', u'309842.695 - 655357.689', u'655357.690 - 1216700.056', u'1216700.057 - 8326644.804'] >>> sym.classBreakLabels[0]="alex" >>> arcpy.RefreshTOC() >>> list = sym.classBreakLabels >>> list[0] = "alex" >>> sym.classBreakLabels = list >>> arcpy.RefreshTOC() >>> list_values = sym.classBreakValues >>> list_values [1041.095, 114334.976, 309842.694, 655357.689, 1216700.056, 8326644.804] >>> list_values[1] = 300000 >>> list_values[2] = 600000 >>> list_values[3] = 1200000 >>> sym.classBreakValues = list_values >>> sym.numClasses 5 |
||
09 |
RasterClassifiedSymbology 类可访问用于更改图层栅格分类符号系统外观的各种属性。 ====<<<< Attributes >>>>==== ◈ text:与元素相关联的文本字符串。String ====<<<< Methods >>>>==== ◈ delete ():提供了一种删除页面布局中现有文本元素的机制。 |
||||
10 | mapping.LabelClass |
用于访问图层的标注类属性。【Layer.labelClasses】 labelClasses 属性将会返回 LabelClass 对象的列表。要引用具体的 LabelClass 对象,则需要对列表中的每个项目进行循环,或提供具体的索引编号。 ====<<<< Attributes >>>>==== ◈ className:用于获取或设置图层的单个标注类名称。 |
# 判断是否可以显示标签 >>> world_lyr.supports("SHOWLABELS") True # 设置显示标签并刷新 >>> world_lyr.showLabels = True >>> arcpy.RefreshActiveView() # 获取标注信息 >>> for lblClass in world_lyr.labelClasses: ... print lblClass.className ... print lblClass.expression ... print lblClass.SQLQuery |
||
---- |
------------------- |
-------------------------------------------------- |