为了账号安全,请及时绑定邮箱和手机立即绑定

如何基于 sde 文件更改 mxd 工程中的图层路径

如何基于 sde 文件更改 mxd 工程中的图层路径

MYYA 2022-09-13 10:14:36
存在 ArcMap 工程,需要使用地理数据库连接文件(sde 文件)更改这些工程中的图层路径。怎么做呢?注意:查找并替换工作区路径(old_sde_file,new_sde_file)功能没有帮助。
查看完整描述

1 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

可以使用查找和替换工作空间路径(“”, sdeFile):


import arcpy, os

def changeLayerFiles(fullPath):

    nameWithPath, extension = os.path.splitext(fullPath)

    if extension.lower() == ".lyr":

        layer = arcpy.mapping.Layer(fullPath)

        for lyr in arcpy.mapping.ListLayers(layer):

            lyr.findAndReplaceWorkspacePath("", sdeFile)

            #lyr.findAndReplaceWorkspacePaths(u"C:", u"D:") #do when need change name of disk

            outputFile = os.path.join(outputFolder, os.path.basename(nameWithPath) + ".lyr")

            lyr.saveACopy(outputFile, "10.3")

            arcpy.AddMessage("layer " + os.path.basename(nameWithPath) + ".lyr is change")

            del layer


if __name__ == '__main__':

    #input parameters:

    inputFolder = arcpy.GetParameterAsText(0) #folder with input files mxd 

    outputFolder = arcpy.GetParameterAsText(1) #folder with output files mxd

    #sdeFile = r"D:/gis2.sde" #do when need used locale sde-file

    sdeFile = r"\\10.64.68.36\j\ElectronicArchive\Connect\gis1.sde"

    for fileName in os.listdir(inputFolder):

        fullPath = os.path.join(inputFolder, fileName)

        if os.path.isfile(fullPath): 

            changeLayerFiles(fullPath)


查看完整回答
反对 回复 2022-09-13
  • 1 回答
  • 0 关注
  • 199 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号