Arc GIS 10.1 - Sortieren von Ebenen, die im Inhaltsverzeichnis aufsteigend in „Liste nach Zeichnungsreihenfolge“ sortiert sind

8

Ich habe ungefähr 100 Funktionen in meinem ArcMap-Projekt. Ich wähle im Inhaltsverzeichnis den Ansichtsmodus "Liste nach Zeichnungsreihenfolge". Wie kann ich diese Liste aufsteigend oder alphabetisch sortieren? Unter dem Optionsfeld ist nichts dergleichen. Die Zeichenreihenfolge sollte nach Namen aufsteigend sein. Oder wie kann ich sie anders sortieren?

Luis
quelle

Antworten:

4

Ich habe ein Skript mit MoveLayer und einer temporären Gruppenebene geschrieben, damit dies funktioniert. Erstellen Sie zuerst eine neue Gruppenebene an einer beliebigen Stelle in Ihrem Inhaltsverzeichnis (egal wie sie heißt, sie wird am Ende gelöscht). Dies funktioniert nur unter der Annahme, dass diese temporäre Gruppenschicht die einzige im mxd ist. Dies kann natürlich umgangen werden, indem Sie Ihrer temporären Ebene einen konstanten Namen geben (z. B. "TempGroup") und das Skript so ändern, dass diese Gruppenebene speziell für die Sortierung verwendet wird.

mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd)[0] # Assuming one data frame
group_lyr = [lyr for lyr in arcpy.mapping.ListLayers(mxd) if lyr.isGroupLayer][0] # The temp group layer should be the only one
lyr_names = sorted(lyr.name for lyr in arcpy.mapping.ListLayers(mxd) if lyr.isFeatureLayer)

for name in lyr_names:
    arcpy.mapping.MoveLayer(df, group_lyr, arcpy.mapping.ListLayers(mxd, name)[0], "BEFORE")

arcpy.mapping.RemoveLayer(df, group_lyr)

Gist ist hier . Ich verwende ArcGIS 10.3.1 für Desktop.

Cindy Jayakumar
quelle
mxd.save() del mxd
Fügen
Die oben genannte Änderung ist nur erforderlich, wenn das Skript programmgesteuert auf einem vorhandenen mxd aufgerufen wird. Die Antwort wurde mit der Annahme geschrieben, dass sie im Python-Fenster in ArcMap ausgeführt wird.
Cindy Jayakumar
danke Cidny, aber ich laufe in einer externen Python-Datei.
NewGIS
2

Es gibt keine Möglichkeit, die Liste nach Zeichnungsreihenfolge zu sortieren (ohne Programmierung).

Es ist jedoch möglich, die Liste nach Sichtbarkeits- Inhaltsverzeichnis und die Auflistung nach Auswahl- Inhaltsverzeichnis zu sortieren : Gehen Sie zum Optionsfeld im Inhaltsverzeichnis. Wählen Sie auf der Registerkarte "Einstellungen" aus, ob Ebenen nach der Reihenfolge sortiert werden sollen, in der sie gezeichnet werden, oder alphabetisch nach Ebenennamen ( Ebenen sortieren nach ).

Jens
quelle
Vielen Dank. Aber ich kenne die anderen Sortierwege. Esri hilft dabei, diese Wege zu beschreiben. Aber nicht mein Fall, was ich brauche. Wie kann ich es programmieren? Ich habe etwas mit PLTS gefunden, aber nichts auf diese Weise gefunden. Nochmals vielen Dank für jeden Rat.
Luis
0

Ja, du kannst es schaffen

Einzelheiten zum Sortieren des Inhaltsverzeichnisses in alphabetischer Reihenfolge finden Sie unter: http://resources.arcgis.com/de/help/main/10.1/index.html#//0106000001qt000000

user19022
quelle
1
Dies scheint nur möglich zu sein, wenn Sie über diese Erweiterung verfügen und nicht über ArcMap.
Devdatta Tengshe