zoukankan      html  css  js  c++  java
  • arcpy修改mxd symbology.classBreakLabels

    mxd使用分级渲染,

    lyr.symbologyType =‘’
    #coding=utf-8
    import arcpy
    mxd = arcpy.mapping.MapDocument(ur"xxx10.2.mxd")
    copied_mxd = ur"E:xxxx0.2b.mxd"
    # for lyr in arcpy.mapping.ListLayers(mxd):
    #     print lyr.name,lyr.longName
    
    print "Loading mxd file default dataframes..."
    df = ""
    try:
        frames = arcpy.mapping.ListDataFrames(mxd, "图层")
        if len(frames) == 0:
            frames = arcpy.mapping.ListDataFrames(mxd, "Layers") 
        df = frames[0]
    except Exception, e:
        print "load mxd file default dataframes failed:", e
    
    # lyr = arcpy.mapping.ListLayers(mxd, "到最近xxx距离", df)[0]
    # print lyr.symbologyType
    
    # for lyr in arcpy.mapping.ListLayers(mxd, "", df):
    #     print lyr.symbologyType,lyr.symbology.valueField
    
    breaks=[]
    labels=[]
    for lyr in arcpy.mapping.ListLayers(mxd, "", df):
        
        #     print lyr.symbology.classBreakValues
        if 0.0 == lyr.symbology.classBreakValues[0] and 0.0 == lyr.symbology.classBreakValues[1]:
            #print lyr.symbology.classBreakValues
            #print lyr
            breaks=lyr.symbology.classBreakValues
            breaks.remove(breaks[1])
            lyr.symbology.classBreakValues = breaks
    
        labels=lyr.symbology.classBreakLabels
        for i in range(len(labels)):
            if '.000000 - ' in labels[i] or '0.000000 - ' in labels[i]:
                #print labels[i]
                labels[i]=labels[i].replace('0.000000','0').replace('.000000','0')
        lyr.symbology.classBreakLabels=labels
    
    
    
    mxd.saveACopy(copied_mxd)
    del mxd

  • 相关阅读:
    oracle中job定时调用存储过程的实例
    oracle recyclebin详解(闪回删除的表)
    启动和禁用约束及删除违反约束的记录
    儒轩画的老鼠
    SQLServer2005重建索引
    [转]你真的了解 console 吗
    [转]C# 理解lock
    [转]大话 程序猿 眼里的 高并发
    莆田系医院名单
    .Net WEB 程序员需要掌握的技能
  • 原文地址:https://www.cnblogs.com/yansc/p/14205432.html
Copyright © 2011-2022 走看看