ArcPyを使用してレイヤーのラベルをオンにしますか?


8

Pythonスクリプト内でラベルをオンにできません。

import arcpy
mxd = arcpy.mapping.MapDocument(r"Mypathhere") #Map document reference
layer = arcpy.mapping.ListLayers(mxd, "Layername")[0] #Indexing list for 1st layer
if layer.supports("LABELCLASSES"):
    for lblclass in layer.labelClasses:
        lblclass.showClassLabels = True
arcpy.RefreshActiveView()
mxd.save()
del mxd

最初にラベルマネージャーでラベル付けを有効にする必要がある場合、ArcPyでそれを行うことができますか?

スクリプトは壊れません。エラーは出ません。ポイントにはラベルが付けられません。

回答:


5

あなたの問題は、あなたのコードが「このクラスのラベル機能」を示すレイヤープロパティの下のチェックボックスを有効にしていることだと思います。不足している部分は、「このレイヤーのラベルフィーチャ」のチェックボックスを有効にするコードです

このコードを挿入してみてください:

layer.showLabels = True

次のように、ラベルクラスをアクティブにするifステートメントの後:

import arcpy
mxd = arcpy.mapping.MapDocument(r"Mypathhere") #Map document reference
layer = arcpy.mapping.ListLayers(mxd, "Layername")[0] #Indexing list for 1st layer
if layer.supports("LABELCLASSES"):
    for lblclass in layer.labelClasses:
        lblclass.showClassLabels = True
layer.showLabels = True`
arcpy.RefreshActiveView()
mxd.save()
del mxd

1

常にラベルクラスを使用しているわけではなく、単にラベルをオンにする場合は、コードを次のように簡略化できます。

import arcpy
mxd = arcpy.mapping.MapDocument(r"MyPathHere") 
layer = arcpy.mapping.ListLayers(mxd, "LayerName")[0] 
layer.showLabels = True

データ/レイアウトビューの更新(アクティブな方)を行う場合は、目次のチェックボックスをオンにするか、マップへの変更を保存してから、次のような行を追加します。

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