ArcPyで新しいグループレイヤーを追加しますか?


21

ArcGIS Desktop 10でPythonを使用してグループレイヤーを追加する方法はありますか?

arcpy.mapping.AddLayerを使用できますが、これはグループレイヤーではなく実際のレイヤー専用です。

これまでのところ私はこれを持っています

import arcpy
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.listdataframes(mxd, "layers")[0]
arcpy.mapping.AddLayer

回答:


18

ArcPyがグループレイヤーを直接作成するものを提供するとは思いませんが、簡単な回避策があります。1つの空のグループレイヤーを含む.lyrファイルを作成して、マップに追加できます。

groupLayer = arcpy.mapping.Layer(r"EmptyGroupLayer.lyr")
arcpy.mapping.AddLayer(dataFrame, groupLayer, "BOTTOM")

次に、AddLayerToGroup関数を使用して、グループレイヤーの下に別のレイヤーを追加できます。


いくつかのレイヤーグループがありますが、その中にはさらにグループがあります。それらを親と子と呼びましょう。親はすべて一意ですが、各親内の子は同じです。EG Incidentals> Birds and Transects> Bird。とにかく、同じ名前を持つ2つの鳥グループレイヤーの競合を回避する方法はありますか?
オリバーバーデキン

これにより、AddLayerToGroupを呼び出したときにエラーが発生しました。ここで解決策を見つけました:geonet.esri.com/thread/105771#comment-393442 groupLayer = arcpy.mapping.ListLayers(mxd, "AAAA", dataFrame)[0]
Gabriel Littman

4

空のグループレイヤーを.lyrファイルとして保存します。次に、を使用AddLayerしてマップに追加し、そこから新しいレイヤーを追加します。


0

ArcGIS 10.2および10.3では、そのグループにレイヤーを追加できません。ドライブのレイヤーではなく、TOCに追加されたレイヤーを参照する必要があります。次の投稿で説明されている手順を完了します:AddLayertoGroup

newlyrGr = arcpy.mapping.ListLayers(df)[0]

その後、すべて動作します!

arcpy.mapping.AddLayerToGroup(df, newlyrGr, feat_layer)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.