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