オーバーフローアノテーションエラーの対処法
ArcGISで綺麗にレイアウトを行うために、ラベルの配置位置を微調整する場合があります。ラベルを自由に移動できるようにするには、レイヤを右クリックすると出てくるメニューより「ラベルをアノテーションに変換」を実行します。
ただ、これがくせ者で、全て変換されない場合があるのです。その時に表示されるエラーダイアログが「オーバーフローアノテーション」です。
このエラーダイアログには、配置できなかったアノテーション(ラベル名)がズラズラと表示されていますので、一つ一つ選択して右クリックし、「アノテーションの追加」を実行してください。
フィールド値を丸めてラベル表示する
ArcGISでは、フィールドに収められた値をラベルとして表示する場合、小数点以下の桁数がどんなに多くてもその生の値を表示しようとするため、ラベルが見づらくなる場合があります。
以下の例で示した文法はexcelと同じですので、おなじみの方も多いかと思いますが、対象フィールド値の小数第3位を四捨五入して少数第2位まで表示します。
レイヤプロパティ>ラベル>文字列欄の条件式ボタンをクリック
条件式を記入する欄に
round([対象フィールド],2)
のように記載する。
上記例の[2]を変更すれば、自分好みの桁数で丸めることができます。
なお、この程度の処理であればアドバンストモードに切り替える必要はありません。
ラベルのテキストに縁取り付ける
ArcGISは、線だけではなく表示している文字にも効果を付けることができます。たとえば、文字の周辺を綺麗に縁取りしたり、グラデーションを付けたりすることが可能です。
一例として、文字に縁取りを付ける場合は、以下の手順になります。
- レイヤプロパティ>ラベル>テキストシンボル欄のシンボルボタンをクリック
- シンボル選択ダイアログが出ますが、特に考えずに、右側にあるプロパティボ タンをクリック
- エディタダイアログが表示されますので、4つあるタブからマスクを選択し、 スタイルをハローにします。
ラベルに使用する文字の縁取りを行うだけで、注記の視認性が格段に高まり、マップの見栄えは驚くほど良くなりますよ。
指定した間隔ごとにラベルを表示したい
たとえば、SPというフィールドに距離が入っているとして、全てのラベルを表示してしまうとゴチャゴチャするため500mごとにラベルを表示したい、といった場合、以下のように行います。
- レイヤを右クリックして、プロパティ表示
- ラベルタブを選んで、”条件式”ボタンをクリック
- 真ん中あたりに条件式を記入する欄があるので、”□アドバンスト”を選択し、以下の式を入力する
Function FindLabel ( [SP] )
check = [SP] mod 500
if check = 0 then
FindLabel = [SP]
end if
End Function
これを応用すれば、色々とラベルの表示条件を操作することが出来るようになります。
メッシュのラベルを間隔を開けて表示する
印刷時の縮小割合が大きい場合、全てのメッシュにラベルをつけるとゴチャゴチャして大変見づらくなってしまいます。
そういった場合、以下の式を使ってラベルを表示させると、間引きされていい感じになります。
以下の式を応用すれば、任意の位置にあるラベルだけを表示させることが可能となります。
Function FindLabel ( [Column] , [Row], [Avg_z] )
check=round (([Column] * [Row] )/2,0) -([Column] * [Row] )/2
if check<>0 then
FindLabel = round([Avg_z] ,1)
end if
End Function