답변:
ArcCatalog에서 mxd를 마우스 오른쪽 버튼으로 클릭하고 데이터 소스 설정을 클릭 한 다음 대량 변경을 클릭하십시오. 그러나이 도구는 다음을 경고합니다.
참고 :이 대화 상자는 주로 게시 할지도 문서를 준비하기위한 것입니다. 이 대화 상자를 사용하여 데이터 소스를 업데이트하면 사용자 정의 (VBA 코드, UI 컨트롤 및 사용자 정의 도구 모음), 그래프 및 테이블 창 모양 속성이 .mxd 파일에서 제거됩니다. 이를 유지하려면 대신 ArcMap에서 데이터 소스를 업데이트하십시오.
arcpy.mapping 파이썬 라이브러리를 사용할 수도 있습니다 .
ArcGIS 10을 사용 중이고 Python 사용에 관심이있는 경우 arcpy.mapping 및 레이어 의 메소드를 사용하여 데이터 소스 업데이트 및 수정 에 대한 도움말을 확인하십시오. 객체 .
예:
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project_SDE1.mxd")
mxd.findAndReplaceWorkspacePaths(r"Database Connections\Connection to GISSDE1.sde",
r"Database Connections\Connection to GISSDE2.sde")
mxd.saveACopy(r"C:\Project\Project_SDE2.mxd")
del mxd
계층이 모두 동일한 원본 연결 파일을 소싱하지 않거나 대상 기능 클래스 이름이 새 SDE에서 다른 경우 Layer.replaceDataSource
대신 사용해야 합니다.
그러면 MXD에 레이어가 포함 된 모든 빨간색 느낌표가 제거되고 새로 작성된 데이터 소스를 가리 킵니다. 한 번에 당신은 이것을 할 수 있습니다; 빨간색 느낌표를 클릭 할 때마다 클릭하고 데이터 소스를 클릭하고 설정할 필요가 없습니다.
http://arcscripts.esri.com/details.asp?dbid=14922
링크는 다른 사이트에서 구할 수있는 GDK 도구라고하는 오래된 Arcscript에 연결되어 있습니다. 프로그램은 선택한 레이어 (원하는 레이어의 소스)를 변경할 수있는 툴바를 아크 맵으로 만듭니다. SDE 연결 또는 SDE간에 로컬 파일 지오 데이터베이스로 작동합니다. SDE 사용자 다음 점.
이것은 매우 유용하지만 arcgis 9.3에서만 가능합니다.
하나의 mxd의 경우 기본 ESRI 도구로 충분할 수 있습니다. 그러나 깨진 링크로 여러 mxd를 수정하면 악몽이 될 수 있습니다. UpdateLayerRefs 도구를 사용하여 몇 초 안에 무제한 MXD를 수정하십시오. https://github.com/jswagger/UpdateLayerRefs 입력 MXD의 이름을 목록으로 제공하십시오 [ "Name1.mxd", "Name2.mxd", "Name3.mxd "]
이 게시물은 오래된 것 같지만 작동하지 않습니다. 코드는 다음과 같습니다.
import arcpy, glob
#specify MXD location to change source data
mxd = arcpy.mapping.MapDocument(r"C:\\Users\\jrender\\Documents\\LandbaseEditing PreProd Pub Check.mxd")
workspaceCurrent = r"Database Connections\Connection to PP_GISLand_Landbase.sde"
workspaceTarget = r"Database Connections\Connection to PP_Publication_GISLand.sde"
mxd.findAndReplaceWorkspacePaths(workspaceCurrent, workspaceTarget)
#save a new copy of MXD
mxd.saveACopy(r"C:\Users\jrender\Documents\LandbaseEditing PreProd Pub Check Repathed.mxd")