• ArcPy 将mxd格式转换为msd格式


    在控制程序进行地图服务更新时,如果只是修改MXD中的渲染是不行的,需要写脚本将MXD转换为MSD,替换原有的MSD文件,并重新启动地图服务,这样才能读取到新的渲染方式。

    附上Python代码:

     1 # -*- coding: utf-8 -*-
     2 # nightroad 
     3 import arcpy, os
     4 
     5 def Mxd2Msd(mxdPath):
     6     #检查mxd和msd文件是否存在
     7     arcpy.AddMessage("CheckPath")
     8     if os.path.exists(mxdPath) == False:
     9         return
    10     
    11     # 打开mxd文档
    12     try:
    13         arcpy.AddMessage("CheckMxdFile")
    14         mxd = arcpy.mapping.MapDocument(mxdPath)
    15     except Exception, e:
    16         arcpy.AddMessage("open mxd error: ", e)
    17         return
    18     else:
    19         arcpy.AddMessage("mxd Open Success")
    20 
    21     # 获取默认的数据框
    22     arcpy.AddMessage("mxdRead")
    23     df = ""
    24     try:
    25         frames = arcpy.mapping.ListDataFrames(mxd, "图层")
    26         if len(frames) == 0:
    27            frames = arcpy.mapping.ListDataFrames(mxd, "Layers") 
    28         df = frames[0]
    29     except Exception, e:
    30         arcpy.AddMessage("MxdFrameReadFail:", e)
    31         return
    32 
    33     # 构造msd文档名称
    34     msdPath = mxdPath.replace(".mxd", ".msd")
    35     # 将mxd转为msd
    36     arcpy.AddMessage("Mxd2Msd")
    37     arcpy.mapping.ConvertToMSD(mxd, msdPath, df, "NORMAL", "NORMAL")
    38 
    39 mxdPath=arcpy.GetParameter(0)
    40 Mxd2Msd(mxdPath)
  • 相关阅读:
    hdu 5146 Sequence
    hdu 1232 畅通工程
    hdu 1213 How Many Tables
    hdu 2822 Dogs
    hdu 1242 Rescue
    hdu 5101 Select
    hdu 1873 看病要排队
    hdu 5112 A Curious Matt
    hdu 5154 Harry and Magical Computer
    hdu 1548 A strange lift
  • 原文地址:https://www.cnblogs.com/nightroad/p/9366310.html
Copyright © 2020-2023  润新知