Ich habe die anderen Antworten hier überprüft und keine der Antworten hat für mich funktioniert ...
Es ist eine "einfache" Angelegenheit, einen Layer anhand seines Namens in einer Karte zu finden und seine Datenquelle zu ändern.
Hier ist mein Skript:
#-- New Source
newSource = os.path.join(currDir, lyrZones + "_Dep" + dirNum + ".shp")
#-- Validation
if arcpy.Exists(newSource):
print "The new source exists!"
else:
print "Not found!"
#-- Find the layer and change its source
for lyr in arcpy.mapping.ListLayers(mxd):
if lyr.name == lyrZones:
print "Layer found!"
print layers.dataSource
print " Replacing source..."
lyr.replaceDataSource(currDir, "SHAPEFILE_WORKSPACE", newSource)
print lyr.dataSource
Ich führe es über ein Python-Skript außerhalb von ArcGIS aus.
Sie können sehen, dass die Quelle vorhanden ist, die Ebene gefunden wurde, ich kann durch Drucken auf die Datenquelle zugreifen, aber die lyr.replaceDataSource verursacht einen Fehler (Unerwarteter Fehler ... hilft nicht viel ...)
Ich arbeite jetzt seit 4-5 Stunden daran und es fehlen mir die Lösungen, um es zu versuchen. Irgendeine Idee, was den Absturz verursachen kann?
D:\test
und prüfen Sie, ob dies funktioniert.