概要
シンボル表示された 2 つの入力レイヤー (マスクするレイヤーとマスクされるレイヤー) の交差部に、指定した形状およびサイズでマスキング ポリゴンを作成します。
使用法
このツールでは、ポイント フィーチャ レイヤー、ライン フィーチャ レイヤー、ポリゴン フィーチャ レイヤー、およびジオデータベース アノテーション レイヤーを入力として指定できます。
通常、余白は 0 より大きい値です。 余白サイズが 0 の場合、シンボル表示されたフィーチャの正確な形状を表すマスクが作成されます。 余白の値が負の場合、マスクはシンボル表示されたフィーチャよりも小さくなります。
マップにマスクを追加するとマップが複雑になり、マップの描画が遅くなるため、マップの印刷やエクスポートに影響がおよびます。マスクを作成する際には、この点に注意してください。 マップ用にマスクを作成する際の一般的な考慮点は、マスクの数、マスクの複雑度、マーカーまたはライン シンボルで塗りつぶされているポリゴン フィーチャをマスクするために使用するかどうかの 3 つです。 マスクの数が増えるにつれ、マスクは複雑になります。また、マーカーまたはポリゴンの塗りつぶしシンボルをマスクすると、画面上の描画速度が遅くなります。 さらに、印刷やエクスポートのパフォーマンスが低下し、有効な出力を生成できなくなるおそれもあります。 この理由は、マスク付きマップの印刷とエクスポートでは大量の処理を行う必要があり、複雑なマスクが多用されたマップをグラフィック ファイル形式にエクスポートする方法には既知の限界があるためです。
描画の速度や印刷/エクスポートのパフォーマンスと信頼性を向上させるためにも、マップの用途に必要なだけの最も単純なマスクを使用することが最も重要になります。 マップのほとんどの用途には (アノテーション テキストをマスクするときは特に)、CONVEX_HULL タイプのマスクを使えば十分です。 より詳細なテキスト マスクが必要な場合は、EXACT_SIMPLIFIED タイプを使用します。 比較的大きなマップにかなり多くのテキストをマスクする場合は通常、EXACT タイプのマスクを使用しないでください。このようなマスクを使用してしまうと、複雑なマスクが大量に作成されるため、有効な出力を効率的に生成できないためです。
余白の値をページ単位またはマップ単位のどちらかで指定します。 ほとんどの場合、余白の距離値はページ単位で指定します。
余白値の単位の解釈は、選択した単位に応じて異なります。 ポイント、インチ、ミリメートル、またはセンチメートルを選択した場合、ページ スペースで計算された余白の距離を使用して、マスクが作成されます (余白とは紙面上で測定された距離であると考えます)。 この計算では、基準縮尺のパラメーター値が考慮されます。
余白に対して他の単位を選択した場合、マップ上で計算された余白の距離を使用して、マスクが作成されます (余白とは地球上での実際の距離測定値であると考えます)。 また、この場合、基準縮尺のパラメーター値は、計算の一部としては使用されません。
いずれかの入力レイヤーがアノテーション レイヤーである場合、基準縮尺はレイヤーのフィーチャクラスの基準縮尺に自動設定されるので、結果としてマスクを高い精度で計算できます。 2 つのアノテーション レイヤーを交差させる場合、その両方に同じ基準縮尺を使用する必要があります。
リアルタイムで投影されたアノテーションをマスクするときは、マップの空間参照を使用して空間参照パラメーターで正しく設定して、マスクを作成する必要があります。 リアルタイムでテキストを投影しても読みやすさが保持されます。この理由から、投影ごとにテキストが占有する空間領域は、それぞれ異なることがあります。
アノテーション フィーチャのマスクは、フォント固有です。 テキストにマスクを使用するときは必ず、画面のフォントに出力と同じフォントを使用することが大切です。 そのためには、ベクター出力にフォントを埋め込むか、または SoftFonts をプリンターまたはプロッタにダウンロードしてください。
構文
arcpy.cartography.IntersectingLayersMasks(masking_layer, masked_layer, output_fc, reference_scale, spatial_reference, margin, method, mask_for_non_placed_anno, {attributes})
パラメーター | 説明 | データ タイプ |
masking_layer | マスク付きレイヤーと交差してマスキング ポリゴンを作成する、シンボル表示された入力レイヤー。 このレイヤーは、マスクされるレイヤーにマスキングが適用されているときに強調表示されます。 | Layer |
masked_layer | マスク対象のシンボル表示された入力レイヤー。 このレイヤーはマスキング ポリゴンによって隠されます。 | Layer |
output_fc | マスク フィーチャの格納先となるフィーチャクラス | Feature Class |
reference_scale | マスクをページ単位で指定する場合に、マスキング ジオメトリの計算に使用される基準縮尺。 これは通常、マップの基準縮尺です。 | Double |
spatial_reference | マスキング ポリゴンが作成されるマップの空間参照。 これは、出力フィーチャクラスに割り当てられる空間参照とは異なります。 フィーチャを投影したときにシンボルの位置が変わる場合があるので、マスキング ポリゴンが使用されるマップの空間参照を指定します。 | Spatial Reference |
margin | シンボル表示された入力フィーチャを囲むページ単位のスペース。マスキング ポリゴンの作成に使用されます。 マスキング ポリゴンを作成する際は通常、見栄えを良くするためにシンボルの周囲に小幅の余白を確保します。 余白の値をページ単位またはマップ単位のどちらかで指定します。 ほとんどの場合、余白の距離値はページ単位で指定します。 | Linear Unit |
method | 作成されるマスキング ジオメトリのタイプを指定します。
| String |
mask_for_non_placed_anno | 未配置アノテーション用にマスクを作成するかどうかを指定します。 このオプションが使用されるのは、ジオデータベース アノテーション レイヤーをマスクしている場合だけです。
| String |
attributes (オプション) | 入力フィーチャから出力フィーチャに渡す属性を指定します。
| String |
コードのサンプル
IntersectingLayersMasks (インターセクト レイヤー マスク) の例 1 (Python ウィンドウ)
次の Python ウィンドウ スクリプトは、イミディエイト モードで IntersectingLayersMasks ツールを使用する方法を示しています。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.IntersectingLayersMasks_cartography("C:/data/cartography.gdb/transportation/roads",
"C:/data/cartography.gdb/transportation/railroads",
"C:/data/cartography.gdb/transportation/ilm_polys",
"25000", "", "5 meters", "EXACT_SIMPLIFIED", "", "ALL")
IntersectingLayersMasks (インターセクト レイヤー マスク) の例 2 (スタンドアロン スクリプト)
このスタンドアロン スクリプトは、IntersectingLayersMasks (ベクター タイル パッケージの作成) ツールの使用例を示しています。
# Name: IntersectingLayersMasks_standalone_script.py
# Description: Creates masking polygons at a specified
# shape and size at the intersections of symbolized features.
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
masking_layer = "C:/data/cartography.gdb/transportation/roads"
masked_layer = "C:/data/cartography.gdb/transportation/railroads"
outpuf_fc = "C:/data/cartography.gdb/transportation/ilm_polys"
reference_scale = "25000"
spatial_reference = ""
margin = "5 meters"
method = "EXACT_SIMPLIFIED"
mask_for_non_placed_anno = ""
attributes = "ALL"
# Execute Intersecting Layers Masks
arcpy.IntersectingLayersMasks_cartography(masking_layer,
masked_layer,
output_fc,
reference_scale,
spatial_reference,
margin, method,
mask_for_non_placed_anno,
attributes)
環境
ライセンス情報
- Basic: いいえ
- Standard: いいえ
- Advanced: はい