2017-06-06 1 views
0

Ich versuche, ein Python-Tool zu schreiben, das die Namen aller Ebenen mit ihren Geometrietypen anzeigt, aber wenn ich meinen Code ausführe, werden alle Ebenen nur als Polygon angezeigt. Kann jemand darauf hinweisen, wo ich falsch liege? Ich bin ein Neuling.Liste Karte Layernamen mit Geometrietypen

Hier ist mein Code so weit:

import arcpy.mapping as mapping 
mxd = mapping.MapDocument ("CURRENT") 
layers = mapping.ListLayers(mxd) 
inFC = arcpy.GetParameterAsText(0) 
outFC = arcpy.GetParameterAsText(1) 
desc = arcpy.Describe("C:/Program Files(x86)/ArcGIS/Desktop10.4/Reference Systems/utm.shp") 
type = desc.shapeType 
for lyr in layers: 
    print lyr.name +" " + type 
+0

Beachten Sie, dass es viele Tausende von ArcPy Fragen gestellt und beantwortet am [gis.se] Stapel von Exchange. – PolyGeo

Antwort

1

Sie derzeit type = desc.shapeType verwenden, die shapeType eines bestimmten Shape-Datei beschreibt. Dies wird Sie nicht über die einzelnen Layer in der MXD informieren (die Sie mit for lyr in layers: durchlaufen).

Um die shapeType einer bestimmten Schicht zu bekommen, Describe wieder in der Schleife:

for lyr in layers: 
    desc = arcpy.Describe(lyr) 
    print lyr.name, desc.shapeType 
+0

Es hat wie ein Zauber funktioniert, danke. – kamweshi

+0

Gerne helfen! :) – Erica

Verwandte Themen