加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

arcgis python 布局中所有元素信息报告

发布时间:2020-12-20 10:57:27 所属栏目:Python 来源:网络整理
导读:# Author: ESRI # Date: July 5,2010 # Version: ArcGIS 10.0 # Purpose: This script generates a report of each page layout element and its # associated properties. This script is intended to run as a scrip tool # and requires two parameters:
# Author:  ESRI
# Date:    July 5,2010
# Version: ArcGIS 10.0
# Purpose: This script generates a report of each page layout element and its
#          associated properties. This script is intended to run as a scrip tool
#          and requires two parameters:
#               1) Input map document,
#               2) Output text file.

import arcpy,os,datetime

#Read parameters from tool
mxdPath = arcpy.GetParameterAsText(0)
output = arcpy.GetParameterAsText(1)

try:

    #Create r/w output file
    outFile = open(output,"w")

    #Generate Report header
    outFile.write("PageLayout Element Report: n")
    outFile.write("n")
    outFile.write("This report lists the properties of invidual page layout elements within a single MXD. n")
    outFile.write("n")
    outFile.write("MXD location: " + mxdPath + "n")
    outFile.write("n")
    outFile.write("Date: " + str(datetime.datetime.today().strftime("%B %d,%Y")) + "n")
    outFile.write("n")

    #Reference MXD file
    mxd = arcpy.mapping.MapDocument(mxdPath)
                
    #Report data frame elements
    if len(arcpy.mapping.ListLayoutElements(mxd,"DATAFRAME_ELEMENT")) > 0:
        outFile.write("n")
        outFile.write(" DATA FRAME ELEMENTS: n")
        
        for elm in arcpy.mapping.ListLayoutElements(mxd,"DATAFRAME_ELEMENT"):
            outFile.write("n")
            outFile.write("t Name:                " + elm.name + "n")
            outFile.write("t X Position:          " + str(elm.elementPositionX) + "n")
            outFile.write("t Y Position:          " + str(elm.elementPositionY) + "n")
            outFile.write("t Height:              " + str(elm.elementHeight) + "n")
            outFile.write("t Width:               " + str(elm.elementWidth) + "n")

    #Report graphic elements
    if len(arcpy.mapping.ListLayoutElements(mxd,"GRAPHIC_ELEMENT")) > 0:
        outFile.write("n")
        outFile.write(" GRAPHIC ELEMENTS: n")
        
        for elm in arcpy.mapping.ListLayoutElements(mxd,"GRAPHIC_ELEMENT"):
            outFile.write("n")
            outFile.write("t Name:                " + elm.name + "n")
            outFile.write("t X Position:          " + str(elm.elementPositionX) + "n")
            outFile.write("t Y Position:          " + str(elm.elementPositionY) + "n")
            outFile.write("t Height:              " + str(elm.elementHeight) + "n")
            outFile.write("t Width:               " + str(elm.elementWidth) + "n")

    #Report legend elements
    if len(arcpy.mapping.ListLayoutElements(mxd,"LEGEND_ELEMENT")) > 0:
        outFile.write("n")
        outFile.write(" LEGEND ELEMENTS: n")
        
        for elm in arcpy.mapping.ListLayoutElements(mxd,"LEGEND_ELEMENT"):
            outFile.write("n")
            outFile.write("t Name:                " + elm.name + "n")
            outFile.write("t Parent data frame:   " + elm.parentDataFrameName + "n")
            outFile.write("t Title:               " + elm.title + "n")
            outFile.write("t X Position:          " + str(elm.elementPositionX) + "n")
            outFile.write("t Y Position:          " + str(elm.elementPositionY) + "n")
            outFile.write("t Height:              " + str(elm.elementHeight) + "n")
            outFile.write("t Width:               " + str(elm.elementWidth) + "n")

    #Report map surround elements
    if len(arcpy.mapping.ListLayoutElements(mxd,"MAPSURROUND_ELEMENT")) > 0:
        outFile.write("n")
        outFile.write(" MAP SURROUND ELEMENTS: n")
        
        for elm in arcpy.mapping.ListLayoutElements(mxd,"MAPSURROUND_ELEMENT"):
            outFile.write("n")
            outFile.write("t Name:                " + elm.name + "n")
            outFile.write("t Parent data frame:   " + elm.parentDataFrameName + "n")
            outFile.write("t X Position:          " + str(elm.elementPositionX) + "n")
            outFile.write("t Y Position:          " + str(elm.elementPositionY) + "n")
            outFile.write("t Height:              " + str(elm.elementHeight) + "n")
            outFile.write("t Width:               " + str(elm.elementWidth) + "n")

    #Report picture elements
    if len(arcpy.mapping.ListLayoutElements(mxd,"PICTURE_ELEMENT")) > 0:
        outFile.write("n")
        outFile.write(" PICTURE ELEMENTS: n")
        
        for elm in arcpy.mapping.ListLayoutElements(mxd,"PICTURE_ELEMENT"):
            outFile.write("n")
            outFile.write("t Name:                " + elm.name + "n")
            outFile.write("t X Position:          " + str(elm.elementPositionX) + "n")
            outFile.write("t Y Position:          " + str(elm.elementPositionY) + "n")
            outFile.write("t Height:              " + str(elm.elementHeight) + "n")
            outFile.write("t Width:               " + str(elm.elementWidth) + "n")

    #Report text elements
    if len(arcpy.mapping.ListLayoutElements(mxd,"TEXT_ELEMENT")) > 0:
        outFile.write("n")
        outFile.write(" TEXT ELEMENTS: n")
        
        for elm in arcpy.mapping.ListLayoutElements(mxd,"TEXT_ELEMENT"):
            outFile.write("n")
            outFile.write("t Name:                " + elm.name + "n")
            outFile.write("t Text string:         " + elm.text + "n")
            outFile.write("t X Position:          " + str(elm.elementPositionX) + "n")
            outFile.write("t Y Position:          " + str(elm.elementPositionY) + "n")
            outFile.write("t Height:              " + str(elm.elementHeight) + "n")
            outFile.write("t Width:               " + str(elm.elementWidth) + "n")

    #Close the file
    outFile.close()

    #Automatically open the file in associated TXT application
    os.startfile(output)

    #Delete all variables
    del mxdPath,outFile,mxd,output

except Exception,e:
  import traceback
  map(arcpy.AddError,traceback.format_exc().split("n"))
  arcpy.AddError(str(e))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读