0

マップ上の2セットのラベルを変更する方法を模索しています。ラベルが付けられた郵便番号のマップがあり、2つのマップを出力できるようにしたいと考えています。1つは郵便番号ラベル(ZIP)で、もう1つはデータに結合したフィールド(chrlabelと呼ばれる)の値です。目標は、各郵便番号のデータを示す1つのマップと、参照として郵便番号を示す2番目のマップを作成することです。

動作しない最初の試みは次のようになります
。1)2番目のデータフレームをマップに追加し、「zip」と「chrlabel」という名前の2つのポリゴンを含む新しいレイヤーを追加しました。
2)このフレームを使用してデータ駆動型ページを有効にしてから、プライマリフレームの背後に非表示にします(これらのポリゴンは表示したくないので、データ駆動型ページを制御するために使用したいだけです)。
3)郵便番号ラベルで、次の擬似コードのようなVBScript式を書き込もうとしました。test
= "
if test =" zip "then
label = ZIP
else
label = CHRLABEL
endif

動的テキストがVBScriptのページ名に解決されないため、これは機能しません。
これを機能させるために、VBScriptでページ名を呼び出す方法はありますか?

そうでない場合、これを行う別の方法はありますか?
私の他の考えは、1または0で埋められるレイヤーに別のフィールドを追加することです。次に、if-thenテスト条件をif NewField=1に置き換えることができます。

次に、データ駆動型ページが2番目のページに進むときに、郵便番号機能のすべてのNewFieldを更新するスクリプトを作成する必要があります。データドリブンページが変更されたときにスクリプト(Pythonまたはその他)をトリガーする方法はありますか?

ありがとう

4

1 に答える 1

1

8か月遅すぎますが、後世のために...

あなたは自分自身で物事を難しくしています-複製レイヤーをセットアップして別のレイヤーを使用し、レイヤーの可視性を調整する方がはるかに簡単です. 私はこの種のVBScriptに精通していませんが、Python(ESRIのライブラリを使用)では次のようになります[python 2.6、ArcMap 10 - サンプルのみ、これをデバッグしていませんが、私は同様のことをかなり頻繁に行います] :

from arcpy import mapping

## Load the map from disk
mxdFilePath = "C:\\GIS_Maps_Folder\\MyMap.mxd"
mapDoc = mapping.MapDocument(mxdFilePath)

## Load map elements
dataFrame = mapping.ListDataFrames(mapDoc)[0]   #assumes you want the first dataframe; you can also search by name
mxdLayers = mapping.ListLayers(dataFrame)

## Adjust layers
for layer in mxdLayers:
    if (layer.name == 'zip'):
        zip_lyr = layer
    elif(layer.name == 'sample_units'):
        labels_lyr = layer

## Print zip code map
zip_lyr.visible = True
zip_lyr.showLabels = True
labels_lyr.visible = False
labels_lyr.showLabels = False

zip_path = "C:\\Output_Folder\\Zips.pdf"
mapping.ExportToPDF(mapDoc, zip_path, layers_attributes="NONE", resolution=150)

## Print labels map
zip_lyr.visible = False
zip_lyr.showLabels = False
labels_lyr.visible = True
labels_lyr.showLabels = True

labels_path = "C:\\Output_Folder\\Labels.pdf"
mapping.ExportToPDF(mapDoc, labels_path, layers_attributes="NONE", resolution=150)

## Combine files (if desired)
pdfDoc = mapping.PDFDocumentCreate("C:\\Output_Folder\\Output.pdf"")
pdfDoc.appendPages(zip_path)
pdfDoc.appendPages(labels_path)
pdfDoc.saveAndClose()

データ ドリブン ページに関する限り、それらをすべて一度にまたはループでエクスポートし、必要に応じて調整できますが、上記のようなものを使用する場合に必要な理由はわかりません. ESRIのドキュメントと例は、実際にはこれについて非常に優れています。(そのページから、他のすべての Python ドキュメントに非常に簡単にアクセスできるはずです。)

于 2011-12-14T00:30:46.613 に答える