ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS Desktop

完全なプロ仕様の GIS

ArcGIS Enterprise

エンタープライズ GIS

ArcGIS for Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ArcMap

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • エクステンション

ラベル条件式の作成

  • 条件式の例

ラベル条件式を使用して、ラベルの書式を調整できます。文字を挿入したり、関数を記述したりできるだけではなく、ラベル条件式に ArcGIS の書式タグを含めることができます。これらは、ラベルの全体または一部の外観を変更するための特殊文字です。たとえば、太字の書式タグを使用して、改行された複数行のラベルの 1 行目を太字にすることができます。

テキスト書式タグを使用したラベルの書式設定の詳細

[ラベル条件式] ダイアログ ボックスの [高度な設定] ボックスをオンにしている場合を除き、ラベル条件式は 1 行のコードに制限されます。[高度な設定] チェックボックスをオンにすると、プログラミング ロジックを含み、コードを複数の行に拡張する関数を入力できます。

フィールド値はテキスト文字列に自動的にキャストします。したがって、算術演算で数値を使用する場合や、比較するときには、これをもう一度キャストして数値データ タイプに戻す必要があります。以下の例では、2 つの整数フィールドを追加しています。

Python
int([FIELD1]) + int([FIELD2])
VBScript
cint([FIELD1]) + cint([FIELD2])
JScript
parseInt([FIELD1]) + parseInt([FIELD2])

手順:

  1. [ラベリング] ツールバーの [ラベル マネージャー] ボタン ラベル マネージャー をクリックします。
  2. [ラベル クラス] リストでラベル クラスをクリックします。
  3. [条件式] ボタンをクリックします。
  4. [形式] メニューで言語を選択します。
  5. Python、VBScript、または JScript の条件式を入力します。また、フィールドをダブルクリックして条件式に追加するか、フィールドを選択してから [追加] ボタンをクリックして条件式の最後に追加することによって、スペース区切りで条件式を作成することができます。

    フィールドは、レイヤーのデータ ソースのデータ タイプに関係なく、角括弧 ([]) で囲まれます。

    必要に応じて、ラベル テキスト部分に書式を適用する ArcGIS テキスト書式タグを [条件式] ボックスに入力します。

    条件式が複数行のコードにわたる場合は、[高度な設定] チェックボックスをオンにしてから、ラベル条件式を入力します。

  6. [確認] をクリックして、構文エラーがないことを確認します。
  7. 各ダイアログ ボックスの [OK] をクリックします。
ヒント:
標準および高度なラベル条件式は、他のレイヤーまたはマップに読み込み可能なラベル条件式ファイル (*.lxp) として保存できます。

条件式の例

次に、ラベル条件式の例を示します。

  • 文字列をフィールド内の値に連結します。たとえば、次の条件式により、PARCELNO フィールドの値の前にテキスト「Parcel no:」が置かれたラベルが作成されます。
    Python
    "Parcel no: " + [PARCELNO]
    
    VBScript
    "Parcel no: " & [PARCELNO]
    
    JScript
    "Parcel no: " + [PARCELNO]
    
  • 小数を設定された桁数に丸めます。たとえば、次の条件式により、小数点以下 1 桁に四捨五入された AREA フィールドが表示されます。
    Python
    round(float([AREA]), 1)
    
    VBScript
    Round ([AREA], 1)
    
    JScript
    function FindLabel ( [AREA] )
    {
    var ss;
    var num= parseFloat([AREA]);
    ss =  num.toFixed(1);
      return (ss);
    }
    
  • テキスト ラベルをすべて大文字または小文字に変換します。次の条件式により、NAME フィールドはすべて小文字になります。
    Python
    def FindLabel ( [NAME] ):
      S = [NAME]
      S = S.lower()
      return S
    
    VBScript
    LCase ([NAME])
    
    JScript
    [NAME].toLowerCase()
    
  • テキスト ラベルを適切な大小文字に変換します。たとえば、次の条件式により、すべて大文字の NAME フィールドは、適切な大小文字の組み合わせになります。
    Python
    def FindLabel ( [NAME] ):
      S = [NAME]
      S = S.title()
      return S
    
    VBScript
    Function FindLabel ( [NAME] )
    FindLabel = UCase(Left([NAME],1)) & LCase(Right([NAME], Len([NAME]) -1))
    End Function
    
    JScript
    function FindLabel ( [NAME] )
    {
    var str = [NAME];
    var iLen = String(str).length;
    var upper = (str.substring(0,1)).toUpperCase();
    var lower = (str.substring(1, iLen)).toLowerCase()
    return upper + lower;
    }
    
  • 複数行のテキストを作成します。たとえば、次の条件式により、NAME フィールドと 2 つの住所フィールドをそれぞれ別の行に表示するラベルが作成されます。
    Python
    "Name: " + [NAME] + '\n' + [ADDRESS_1] + '\n' + [ADDRESS_2]
    
    VBScript
    "Name: " & [NAME] & vbCrLf& [ADDRESS_1] & vbCrLf& [ADDRESS_2]
    
    JScript
    "Name: " + [NAME] + "\r" + [ADDRESS_1] + "\r" + [ADDRESS_2]
    
  • 1 つのフィールドのテキストを基にして、複数行のテキストを作成します。たとえば、次の条件式により、カンマを使用して改行の位置を指定します。
    Python
    def FindLabel ( [LABELFIELD] ):
      S = [LABELFIELD]
      S = S.replace(', ', '\n')
      return S
    
    VBScript
    Function FindLabel ( [LABELFIELD] )
    FindLabel = replace([LABELFIELD], ", ", vbnewline)
    End Function
    
    JScript
    function FindLabel ( [LABELFIELD] )
    {
    var r, re;
    var str = [LABELFIELD];
    re = /,/g;
    r = str.replace(re, "\r");
    return r;
    }
    
  • ラベルの形式を指定します。たとえば、次の条件式では、ラベルを通貨として表示します。
    Python
    def FindLabel ( [MAXIMUM_OC], [RATE] ):
      import locale
      locale.setlocale(locale.LC_ALL, '')
      S = locale.currency(float([MAXIMUM_OC]) * float([RATE]))
      return S
    
    VBScript
    "Occupancy Revenue: " & FormatCurrency ([MAXIMUM_OC] * [RATE])
    
    JScript
    function FindLabel ( [MAXIMUM_OC], [RATE] )
    {
    var ss;
    var num1 = parseFloat([MAXIMUM_OC]);
    var num2 = parseFloat([RATE]);
    var num3 = num1 * num2
    ss =  num3.toFixed(2);
      return ("$" + ss);
    }
    
  • if-else 条件ステートメントを指定します。これらの関数は、人口が 250,000 人以上の場合は赤い大きなフォントで都市名をラベリングし、250,000 人未満の場合はデフォルトのラベル フォントで都市名をラベリングします。
    Python
    def FindLabel ( [NAME], [POPULATION] ):
      if long([POPULATION]) >= 250000:
        return "<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>"
      else:
        return [NAME]
    
    VBScript
    Function FindLabel ([NAME], [POPULATION])
      if (cLng([POPULATION]) >= 250000) then
       FindLabel = "<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>"
      else
    	 FindLabel = [NAME]
      end if
    End Function
    
    JScript
    function FindLabel ( [NAME], [POPULATION]  )
    {
    if (parseFloat([POPULATION]) >= 250000){
    return ("<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>");
    }
    else
    return ([NAME]);
    }
    
注意:
フィールドの値に基づいてフィーチャのサブセットにラベリングするには、ラベル条件式を使用する代わりに、ラベル クラスに SQL クエリを作成します。
  • Python の Language Reference
  • Microsoft の VBScript Language Reference
  • Microsoft の JScript Language Reference

(この情報は、Esri が作成、所有、管理のいずれも行っていない Web ページにあります。ESRI ジャパンは、これらのページの利用状況を保証できません。またはページの内容についても責任を負いません。)

関連トピック

  • ラベリングの基本概念
  • ラベルの表示について
  • ラベルのテキストの指定について
  • テキスト書式設定タグの使用

ArcGIS Desktop

  • ホーム
  • ドキュメント
  • サポート

ArcGIS プラットフォーム

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Esri について

  • 会社概要
  • 採用情報
  • Esri ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
ご意見・ご感想をお寄せください。
Copyright © 2020 Esri. | プライバシー | リーガル