カスタム シンボルの設計と配置
[USA Current Wildfires] レイヤーは、内部にシンプルな炎の形状を含む円のシンボルを使用します。 このチュートリアルを開始するために、このシンボルの設計につながる考慮事項について学習します。
シンボルの設計ニーズの検討
どのマップ シンボルも迅速、明瞭かつ直感的に伝達することを目的にしています。 そのようなシンボルを設計するには、その設計ニーズを考慮に入れる必要があります。 「このデータの目的は何か」「利用者は誰か」などを考慮する必要があります。
このチュートリアルで使用するシンボルは、グラフィックス ソフトウェアを使用してすでに作成されています。
このシンボルを使用してマッピングを開始する前に、その設計につながる機能の考慮事項に関するビデオを見ます。 シンボルの目的とニーズに関するこの例を理解することで、独自のマップ用により効果的なシンボルを設計および選択することができます。
マップ シンボルの色、明瞭さ、および伝達について慎重に検討することで、さまざまなユーザーがそのシンボルを表示および理解できるようになります。
ArcGIS Online で独自のシンボルを作成すると、マップを固有でニーズに合ったものにすることができます。 カスタム シンボルの設計の考慮事項と、それに対処するための方法について学習しました。 次に、炎のカスタム シンボルをダウンロードし、 [USA Current Wildfires] データセットに適用します。
タイプ別および縮尺別のライブ フィード山火事データのマッピング
すべての火災インシデントを同じシンボルを使ってマッピングすることはしません。 いくつかの異なるシンボルの色およびサイズのバリエーションを使用して、マップ ユーザーに詳細情報を提供します。 火災の場所、種類、新しい火災、発生原因、規模を表示します。
マップを拡大および縮小するときに各シンボルのサイズを制御して、どの縮尺でもシンボルのサイズが適切に調整されるようにします。
山火事のシンボルのダウンロードと山火事マップのコピーの保存
後で使用できるように、山火事のシンボルのコピーをダウンロードし、このチュートリアル向けに用意されたバージョンの [USA Current Wildfires] マップを保存し、編集できるようにします。
- 火災のシンボルをダウンロードします。
これは、過去 24 時間内に発生した米国山火事インシデントのシンボルです。
- USA Current Wildfires Web マップを開きます。
Map Viewer に [USA Current Wildfires] Web マップが表示されます。 マップには赤色のマーカーが示され、そのほとんどが米国西部内です。
次に、このマップのコピーを保存します。
- 「ArcGIS の組織アカウント」にサイン インします。
注意:
組織アカウントがない場合は、ソフトウェア アクセスのオプションをご参照ください。
- [コンテンツ] (暗い背景の) ツールバーで、[保存して開く] ボタンをクリックして [名前を付けて保存] を選択します。
- [マップの保存] ウィンドウの [タイトル] に「USA Current Wildfires」と入力し、自分の名前またはイニシャルを追加します。 [タグ] と [サマリー] の既存のテキストを使用します。
- [保存] をクリックします。
山火事タイプで分類
[USA Current Wildfires] レイヤーには、必要なシンボル クラスの生成に必要な特定のフィールドがありません。 ArcGIS Arcade を使用して、必要なシンボル カテゴリを定義します。 Arcade で、フィールドを追加せずに、リアルタイムでカスタム カテゴリを作成します。
属性テーブルの 3 つのフィールドを使用する Arcade 式を作成して、火災のタイプ、期間、サイズに基づく 8 つのカスタム シンボル クラスを定義します。
- [コンテンツ] ツールバーの [レイヤー] をクリックします。
マップには 3 つの主題図レイヤーがありますが、現在そのうちの 1 つ [Sept 1, 2021] だけが表示されています。 このレイヤーは、アーカイブ済みバージョンのライブ フィード レイヤーです。 特にひどい西部の山火事シーズン中の 2021 年 9 月 1 に取得されました。これには、完全なシンボル セットの構築に必要な全範囲のデータ値が含まれています。
後でライブ データ レイヤーを操作しますが、シンボル クラスを作成するためにアーカイブ レイヤーを操作します。
アーカイブ レイヤーには、すべての山火事ポイントが赤色のドットとして表示されます。 位置以外の詳細情報を伝達できるシンボルを割り当てます。
- [レイヤー] ウィンドウで、[Sept 1, 2021] レイヤーをクリックして選択します。
注意:
レイヤーを選択すると、名前の左側に青い垂直のバーが表示されます。
- [設定] (明るい背景の) ツールバーにある [スタイル] をクリックします。
- [スタイル] ウィンドウの [属性の選択] で [式] をクリックします。
Arcade 式エディターが表示されます。 式を構築する場所は式ウィンドウです。
- [式] ウィンドウから、不要な最初の 3 行を削除します。 「var Acres =」と入力し (またはコピーして貼り付けて)、末尾にスペースを追加します。
var 式は変数を表します。 変数はオブジェクトの単純化された名前で、後から式内で参照しやすくなります。
次に、変数の値を指定します。
- 展開アイコンをクリックし、サイド タブを表示します。
[プロファイル変数] タブおよび [関数] タブには、式で使用するエレメントがあります。 [ヘルプ] タブに Arcade のヘルプ Web ページが開きます。
- [プロファイル変数] をクリックします。 [プロファイル変数] ウィンドウで、[$feature] の横の矢印をクリックします。
- [値] で、[$feature.DailyAcres] を見つけてクリックします。
この文字列が、式ウィンドウに追加されて、最初のコード行が完成します。
これ以降に Acres 変数を参照すると、このレイヤー内の各フィーチャ (この場合は各火災インシデント) の [Daily Acres] 属性の値にアクセスします。
さらに 2 つのフィールドを表すために、さらに 2 つの変数を定義します。
- 式ウィンドウで、Enter キーを押して式の次の行に進みます。 次の 2 行のコードをコピーして貼り付けます。
var Age = $feature.FireDiscoveryAge var Type = $feature.IncidentTypeCategory
これで、3 つの変数が定義されました。 Acres は火災で報告された焼失面積です。 Age は、火災が最初に報告されてからの日数です。Type は、火災インシデントを、山火事、指定された火災、またはインシデント (複合) のいずれかに定義します。
この変数が機能することをテストします。
- [式] ウィンドウで、新しい行に「return Type」と入力します。
- [実行] をクリックします。
[出力] ウィンドウが表示されます。 報告された結果は、[RX] です。
これは、データセットに含まれる最初の火災インシデントの [Incident Type Category field] からの値です。 [RX] は指定された火災のコードです。
指定された火災は制御された焼失です。多くの場合、後から一層激しい山火事になるのを防ぐことができるように計画されます。 データセットの残りの変数とは大きく異なっているため、独自のシンボル クラス内の指定された火災をすべて表示します。 また、シンボル クラスの名前を [RX] よりも意味のある名前にして、他のユーザーがマップの凡例内でそのシンボル クラスを理解できるようにします。
- 式ウィンドウで、テキスト return Type を削除します。 次のコードをコピーして貼り付けます。
if (Type == 'RX') { return "Prescribed Fire" }
この if ステートメントは、[Incident Type Category] フィールドの値が [RX] の場合に文字列 Prescribed Fire を返します。
- [実行] をクリックします。
返される結果は [Prescribed Fire] です。
- 次の行に、以下のコードをコピーして貼り付けます。
if (Type == 'CX') { return "Incident Complex" } if (Age == 0) { return "New (Past 24-hour)" }
このコードにより、さらに 2 つのシンボル カテゴリが作成されます。 1 つ目は、インシデント (複合) 用のカテゴリです。同じエリア内の 2 件以上の火災が 1 つのインシデント管理チームで管理されます。 2 つ目のカテゴリは、過去 24 時間内に発生した火災用です。 新しい火災インシデントの Type コードはありません。 代わりに、式は Age 変数 ([Fire Discovery Age] フィールド) を調べて新しいレコードを見つけます。
これまでに定義した 3 つのカテゴリはすべて、特殊なケースの火災インシデント用です。 次に、残りすべての火災を、そのサイズに基づいて異なるシンボル クラスに配置します。
- 式ウィンドウで、次の行に、以下のコードをコピーして貼り付けます。
When ( Acres < 1000, "0-999", )
If ステートメントのいずれかでキャッチされなかったインシデントは、この When ステートメントに渡されます。
このステートメントは、Acres 値が 1000 未満のとき (When)、文字列「0-999」を返すということです。 大きい火災のシンボル クラスをさらに追加します。
- 空の行 (15 行目) に、ポインターを置いて、以下のコードを貼り付けます。
Acres < 10000, "1,000-9,999", Acres < 50000, "10,000-49,999", Acres < 300000,"50,000-299,999",
これで、面積に基づくシンボル クラスが 4 つになりました。 クラスをもう 1 つ追加して、他のカテゴリのいずれにも該当しないインシデントをキャッチします。
- 閉じ括弧の前にポインターを置いて、「"300,000 or more"」を貼り付けます (引用符を含める)。 Enter キーを押します。
完成した式は、次の式に一致する必要があります。
var Acres = $feature.DailyAcres var Age = $feature.FireDiscoveryAge var Type = $feature.IncidentTypeCategory if (Type == 'RX') { return "Prescribed Fire" } if (Type == 'CX') { return "Incident Complex" } if (Age == 0) { return "New (Past 24-hour)" } When ( Acres < 1000, "0-999", Acres < 10000, "1,000-9,999", Acres < 50000, "10,000-49,999", Acres < 300000,"50,000-299,999", "300,000 or more" )
When ステートメントの前に If ステートメントを記述したので、式を効率よく実行できます。 式の順番は重要です。If ステートメントはサイズでソートされる必要がない火災を最初に除外するので、When ステートメントが処理する必要があるのは、すべての火災ではなく、一部の火災だけになります。 この式は、特定のソート (この場合、火災のサイズ) の前により一般的なソート (この場合、火災のタイプ) を実行するベスト プラクティスに従っており、マップ上でのレイヤーの反応速度が向上します。
- [実行] をクリックします。
[出力] は [Prescribed Fire] です。
属性テーブルの最初のレコードは指定された火災であり、式の最初の If ステートメントによりキャッチされました。
- Arcade 式エディターの上部で、既存のテキストを削除します。
- 「USA Wildfire Incidents (Acres)」と入力して、Tab キーを押します。
- [完了] をクリックします。
マップが更新され、Arcade 式で定義したシンボル クラスが表示されます。 シンボルをさらにカスタマイズして、シンボル クラスごとにさまざまなシンボルの色が表示されるようにします。
カスタム シンボルの適用
凡例カードがマップに表示され、作成したシンボル クラスが表示されます。 次に、シンボル クラスを並べ替えて、カスタム シンボルをカテゴリの 1 つに適用します。
- [スタイル] ウィンドウの [スタイルの選択] にある [タイプ (個別値シンボル)] カードで、[スタイル オプション] をクリックします。
- [スタイル オプション] ウィンドウで、[300,000 or more] の横にある並べ替えボタンをクリックしてドラッグし、レイヤーをリストの最上位に移動します。
- 次の順番で配置されるまで、シンボル クラスを並べ替えます。
- 300,000 or more
- 50,000-299,999
- 10,000-49,999
- 1,000-9,999
- 0-999
- New (Past 24-hour)
- Incident Complex
- Prescribed Fire
シンボル クラスが再配置されます。
次に、炎のカスタム シンボルをシンボル クラスのいずれかに適用します。
- [New (Past 24-hour)] の横にあるシンボルをクリックします。
- [シンボル スタイル] ウィンドウの [現在のシンボル] で [基本ポイント] をクリックします。
- [カテゴリ] の [追加されたスタイル] で、[アップロードされたシンボル] をクリックします。
- [参照] をクリックし、このチュートリアルの前半でダウンロードした画像を選択します。
- [完了] をクリックします。
黄色と赤色の炎のシンボルが [シンボル スタイル] ウィンドウに表示されます。
- [サイズ] に、「19.5」ピクセルと入力します。
新しい火災がカスタム シンボルを持つようになりました。
次に、他の 7 つのシンボル クラスのカスタム シンボルを適用できます。 ここでは、それをスキップして、シンボル クラスがすでに定義されているライブ データセットを操作します。
- [スタイル オプション] ウィンドウで [完了] を 2 回クリックします。
- [コンテンツ] ウィンドウの [Sept 1, 2021] レイヤーで、[表示設定] ボタンをクリックしてレイヤーが表示されないようにします。
- [USA Current Wildfires – Current Incidents] レイヤーで、[表示設定] ボタンをクリックしてレイヤーが表示されるようにします。
注意:
[USA Current Wildfires – Current Incidents] レイヤーは頻繁に変更されるため、表示されるマップはこのチュートリアルの画像とは異なります。
- [コンテンツ] ツールバーの [凡例] をクリックします。
それぞれ異なるシンボルを持つ 8 つのシンボル クラスが表示されます。 最初の 5 つのクラスはすべて、異なるサイズに設定された同じ画像ファイルを使用します。
- [コンテンツ] ツールバーで [保存して開く] をクリックして [保存] を選択します。
マップ縮尺によるシンボル サイズの制御
印刷マップの設計時に、シンボルのサイズは一度だけ考えられます。 しかし、対話的なマップでは、閲覧者が拡大および縮小を行います。 マップ縮尺は常に変化し、ある縮尺では見栄えが良いシンボルも、別の縮尺では大きすぎたり小さすぎたりする場合があります。
次に、2 番目の Arcade 式を作成して、閲覧者がマップを拡大および縮小するときに山火事シンボルのサイズが少し変わるようにします。 変化はわずかですが、確実にシンボルが縮尺に適切なサイズになります。
- [レイヤー] ウィンドウで [USA Current Wildfires – Current Incidents] レイヤーが選択されていることを確認します。 [設定] ツールバーの [スタイル] ボタンをクリックします。
[属性の選択] で、選択した属性が [USA Wildfire Incidents (Acres)] としてリスト表示されます。 これは前のステップで作成した式と同じです。
- [属性の選択] で [式] をクリックします。
まず、変数を作成します。
- [式] ウィンドウで、既存のテキストを削除します。 次のコードをコピーして貼り付けます。
var Acres = $feature.DailyAcres var Age = $feature.FireDiscoveryAge var Type = $feature.IncidentTypeCategory
これらの変数は前の式の変数と同じです。 どの変数も属性テーブルのフィールドにアクセスします。 次に、属性テーブルではなくマップを検索する参照する 4 つ目の変数を追加します。
- 次の行に、「var vs =」と入力し、末尾にスペースを追加します。
- [プロファイル変数] タブで、[$view] の矢印をクリックし、[$view.scale] をクリックします。
変数 vs は、式の評価時に現在のマップ縮尺を返します。
これを使用して、さまざまなマップ縮尺に対して異なるシンボル サイズを定義します。
- Enter キーを押します。 「return vs」と入力します。[実行] をクリックします。
結果は大きい数値になります。
この数値はマップの現在の縮尺を表します。 Arcade 式エディターを開く前のマップ縮尺によって異なります。 上記の例では、現在のマップの縮尺はおよそ 1:18,500,000 です。
- return vs を削除します。 Enter キーを押して 1 行空けます。
- 次のコードをコピーして貼り付けます。
var ValueSize = When ( Type == 'RX', 17, )
変数 ValueSize は、属性テーブルまたはマップの単一の値を参照しませんが、他の変数は参照します。 その代わり、この変数は式を含みます。 この式は、Type が [RX] と等しい場合 (When) に、シンボル サイズを 17 ポイントにすることを意味します。 この式にコメントを追加して、わかりやすくします。
- Type == 'RX', 17, の後ろにポインターを置きます。 スペースを入力し、続けて「//Prescribed Fire」と入力します。
Arcade では、先頭に「//」が付いたテキストはコメントです。 コメントはコードに影響しません。
さらに 7 つの行を [ValueSize] 式に追加して、他のシンボル クラスのサイズを定義します。
- 空の行 (8 行目) に、ポインターを置いて、以下のコードを貼り付けます。
Type == 'CX', 18, //Incident Complex Age == 0, 19.5, //Past 24-hour Acres < 1000, 18, //0-999 Acres < 10000, 25, //1,000-9,999 Acres < 50000, 33, //10,000-49,999 Acres < 300000, 41, //50,000-299,999
前に定義したシンボル クラスと同じシンボル クラスがありますが、今回は名前ではなく各シンボル クラスにサイズを割り当てます。 大きい火災ほど大きいシンボルで表示されます。 新しい火災は他の火災よりも少し大きくなり (19.5 ピクセル)、強調されています。新しい火のシンボルの黄色が明るい背景では少し見にくいためです。
次に、[ValueSize] 式をテストします。
- 閉じ括弧の後にポインターを置き、Enter キーを 2 回押して 1 行空けます。
- 「return ValueSize」と入力して、[実行] をクリックします。
[出力] ウィンドウにエラーが表示されます。
定義したクラスに該当しないデータをキャッチするには、When ステートメントにデフォルト値が必要です。
式の末尾に追加して、300,000 エーカーよりも大きい火災にシンボル サイズを割り当てます。
- 閉じ括弧の前にポインターを置き、「47」と入力します。 閉じ括弧の後にポインターを置き、「//300,000 or more」と入力します。
- もう一度 [実行] をクリックします。
今回は、数値が返されます。 毎日更新されるライブ データセットを使用しているため数値はさまざまですが、17、18、19.5、25、33、41、47 のいずれかになります。
上記の例では、数値 47 が返されます。これは、テスト フィーチャが 300,000 エーカー以上焼失した山火事であることを示します。
現時点では、式は現在のシンボルと同様の動作をします。つまり、各シンボル クラスに異なるサイズを割り当てます。 コードは、各シンボル クラスのベースライン サイズを提供します。 次に、Arcade を使用して、マップの縮尺に基づいて、それぞれのサイズを変えるようにします。
- 「return ValueSize」を削除して、Enter キーを押します。 次のコードをコピーして貼り付けます。
When( vs > 9000000, ValueSize, vs > 4000000, 1 + ValueSize, )
このステートメントは、次のことを意味しています。
- マップ縮尺が 1:9,000,000 より大きい場合は、[ValueSize] 式により定義された値を返します。
- マップ縮尺が 1:4,000,000 より大きい場合は、[ValueSize] 式により定義された値に 1 を加えた値を返します。
マップ上でのこの式の効果は、次のようになります。
- マップが完全に縮小されると、シンボルのベースライン サイズが使用されます。
- マップが少し拡大されると、シンボル サイズはすべて 1 ポイント増加します。
- 空の行 (20 行目) に、ポインターを置いて、次のテキストを貼り付けます。
vs > 2000000, 2 + ValueSize, vs > 1000000, 3 + ValueSize, vs > 500000, 4 + ValueSize, 5 + ValueSize
このステートメントは、縮尺の増加に合わせて段階的に大きい数値をシンボルのベースライン サイズに追加します。 米国全体に縮小すると、指定された火災のシンボルは 17 ポイントの大きさになります。 町に拡大すると、22 ポイントの大きさ (17 + 5) に増加し、はっきりと表示されたままになります。
注意:
マップで、小さい縮尺とは、地面が小さく表示されるマップを意味します。 1:9,000,000 の縮尺は 1:500,000 よりも小さくなります。
完成した式は、次の式に一致する必要があります。
var Acres = $feature.DailyAcres var Age = $feature.FireDiscoveryAge var Type = $feature.IncidentTypeCategory var vs = $view.scale var ValueSize = When ( Type == 'RX', 17, //Prescribed Fire Type == 'CX', 18, //Incident Complex Age == 0, 19.5, //Past 24-hour Acres < 1000, 18, //0-999 Acres < 10000, 25, //1,000-9,999 Acres < 50000, 33, //10,000-49,999 Acres < 300000, 41, //50,000-299,999 47 //300,000 or more ) When( vs > 9000000, ValueSize, vs > 4000000, 1 + ValueSize, vs > 2000000, 2 + ValueSize, vs > 1000000, 3 + ValueSize, vs > 500000, 4 + ValueSize, 5 + ValueSize )
最小のシンボル サイズは 17、最大のシンボル サイズは 52 (47 + 5) です。 これらの数値は、後でシンボルの設定に必要になります。
- [実行] ボタンをクリックします。
[出力] は、17 ~ 52 の数値である必要があります。
- その式に「Symbol Size」という名前を付けます。 Tab キーを押します。
- [完了] をクリックします。
[スタイル] ウィンドウの [属性の選択] の下に、[USA Wildfire Incidents (Acres)] と [Symbol Size] の 2 つの式がリスト表示されます。 これらの値はどちらも、シンボルによって表されます。
タイプとサイズによるシンボルのスタイル設定
[スタイル] ウィンドウでは、[タイプとサイズ] スタイルを利用できます。 このオプションは、テキスト値を返すフィールド (または式) と数値を返すフィールド (または式) がある場合に表示されます。
- [スタイル] ウィンドウの [タイプとサイズ] スタイルで、[スタイル オプション] をクリックします。
ウィンドウに 2 つのカードが表示されます。 それぞれの式にシンボル プロパティを適用します。
- [タイプ (個別値シンボル)] スタイルで、[スタイル オプション] をクリックします。
[USA Wildfire Incidents (Acres)] 式に基づいて以前に適用されたシンボルはすべて、引き続き存在しています。 ここで、変更する必要はありません。
- [キャンセル] をクリックします。
- [数と量 (サイズ)] カードで、[スタイル オプション] をクリックします。
このスタイルは、[シンボル サイズ] 式の値を実際のシンボル サイズに変換します。 スタイルを構成して、返り値 17 (有効な最小値) は 17 ピクセルのシンボルで描画され、返り値 52 (有効な最大値) は 52 ピクセルのシンボルで描画されます。
- ヒストグラムの最上部の数値をクリックします。 「52」と入力し、Enter キーを押します。
注意:
頻繁に変化するライブ データを使用しているため、ヒストグラムのデフォルトの数値とデータが画像例とは異なる場合があります。
ヒストグラムの上限ハンドルも移動します。 ハンドルの値以上の値は、最大サイズのシンボルで描画されます。
- ラベルが [52] と表示されるまで上限ハンドルをドラッグします。
データ範囲を正しく設定したので、サイズ範囲も 17 ~ 52 に一致するようにします。
- [サイズ] で、[最小] を「17」ピクセルに、[最大] を「52」ピクセルに変更します。
- [凡例に含める] をオフにします。
- [完了] を 3 回クリックします。
- マップ上で、画面を拡大および縮小して、シンボルのサイズを確認します。
拡大するにつれ、シンボルが少し大きくなります。 ただし、変化はわずかです。 マップ ユーザーを邪魔したり混乱させたりする可能性があるため、この変化を目立たないようにします。 しかし、大きな縮尺でサイズをわずかに大きくすると、マップが読みやすくなります。
以下の図は、変更されていないシンボル サイズと変更されたサイズ (拡大すると少し大きくなる) を比較しています。
- マップを保存します。
これで、3 種類のカスタマイズを使用して現在の山火事インシデントがシンボル表示されました。 第一に、Arcade 式を作成して、さまざまな火災のタイプおよびサイズのカスタム シンボル クラスを作成しました。 第二に、カスタム .png シンボルをシンボル クラスに適用しました。 第三に、別の Arcade 式を作成して、さまざまな縮尺でシンボルのサイズを少し変更しました。
ラベル、延焼範囲、およびポップアップのカスタマイズ
マップには、火災の種類とサイズをマップのユーザーに示すカスタム マーカー シンボルを使用して山火事データがシンボル表示されています。 その他に、各火災の名前と焼失エリアの範囲を伝える 2 種類の情報があります。
ラベルの作成
山火事レイヤーはすでにポップアップが構成されており、ユーザーはクリックして各インシデントを表示できます。 しかし、大きな縮尺で十分なスペースがあるため、ラベルも含めることができます。 ラベルは、ユーザーが対象の火災をすばやく見つけるのに役立ちます。 シンボルと一致し、拡大したときにだけ表示される山火事レイヤーのラベルを作成します。
- 必要に応じて、[USA Current Wildfires] Web マップを再び開きます。
- [レイヤー] ウィンドウで [USA Current Wildfires – Current Incidents] レイヤーが選択されていることを確認します。 [設定] ツールバーの [ラベル] をクリックします。
- [ラベル] ウィンドウで [ラベルの有効化] をオンにします。
マップにラベルが表示されます。
これらのラベルを改善して、さまざまな縮尺や異なるマップでも見栄えが良く、読みやすいままになるようにします。
ラベルには、文頭のみを大文字にする形式のものとすべて大文字にする形式のものがあります。 Arcade を使用して、すべてのラベルに一貫性のある書式設定が使用されるようにします。
- [フィーチャのラベル作成] ウィンドウの [ラベル フィールド] で、式ボタンをクリックします。
- Arcade 式エディターで、既存のテキストを削除し、「var Name = Upper($feature.IncidentName)」を入力するか、コピーして貼り付けます。
変数の [名前] は属性テーブルから [IncidentName] 値を返しますが、大文字になるように変更します。
また、この式を使用して、指定された火災にラベルが付けられないようにします。 このためには、変数と When ステートメントを作成します。
- 次の行に、以下のコードを入力するか、コピーして貼り付けます。
var Type = $feature.IncidentTypeCategory When ( Type == 'WF', Name, Type == 'CX', Name, "" )
この式は、火災が山火事または複雑な火災である場合 (When) を指定し、大文字の名前を返します。 それ以外の場合は、何も返しません。
- [実行] をクリックします。
[出力] は現在のデータセットにより異なりますが、大文字の火災名か、何も返されないのいずれかになります。
- 式の名前を「Uppercase Name」に編集します。 Tab キーを押して [完了] をクリックします。
マップ上のすべてのラベルが大文字に更新されます。 指定された火災にラベルが付けられなくなりました。
次に、ラベルのスタイルを変更して、異なるマップでも機能するようにします。 暗いベースマップ上では、現在の黒いラベルは読みにくいかもしれません。 また、その他のレイヤーが複数あるマップ上では、これらのラベルが、マップ上にあるその他のフィーチャではなく、火災を示していることが不明瞭になる場合があります。
白と赤のシンボルに合うようにラベルのスタイルを設定して、これらの問題に対処します。
- [フィーチャのラベル作成] ウィンドウで [ラベル スタイルの編集] をクリックします。
- [ラベル スタイル] ウィンドウの [色] で白を選択します。
- [ハロー] をオンにします。 [色] で赤色を選択します。 [サイズ] を [2] に設定します。
ハローを使用すると、テキストの背景を制御して、マップの背景に関係なく読みやすいままにすることができます。 選択した色は、ラベルを火のシンボルにリンクするのに役立ちます。 次に、配置を調整して、どのラベルがどのシンボルに関連付けられているかが明確になるようにします。
- [配置] で、[下 (中央)] を選択します。
これで、ラベルが各シンボルの直下に配置されます。
一部のラベルにより、一部のマップ シンボルが隠されています。 ラベルを小さくして、十分にスペースがある大きな縮尺でのみ表示されるようにします。
- [ラベル スタイル] ウィンドウを閉じます。
- [フィーチャのラベル作成] の [表示範囲] で、[世界] をクリックして [郡 (複数)] を選択します。
- マップを拡大または縮小して、ラベルをテストします。
拡大すると表示され、縮小すると非表示になります。
これらのラベルにより、火のシンボルを過剰に使用することなく、情報をすばやく参照できます。
- マップを保存します。
延焼範囲のシンボル表示
これまで、ポイント データをマッピングして火災を表してきました。 次に、焼失地を表すポリゴン レイヤーをシンボル表示します。 このレイヤーは、火災が自宅または関心がある他の場所にどれだけ近いかをマップ ユーザーが判断するのに重要です。 業界標準に従っているシンボルを選択します。
- [レイヤー] ウィンドウで [USA Current Wildfires – Current Incidents] レイヤーをオフにします。
- [USA Current Wildfires – Current Perimeters] レイヤーをオンにして選択します。
- [コンテンツ] ツールバーの [凡例] をクリックします。 延焼範囲が表示されるまで、火災の多い地域にズームします。
[凡例] ウィンドウが表示されます。 このレイヤーには、山火事の境界線と指定された火災の境界線の 2 つのシンボル クラスがあります。
このデフォルト シンボルを焼失エリアの標準シンボルに変更します。 シンボルの標準または規則に従うと、他のマップでの経験から想定されるビジュアルと一致するため、マップがわかりやすくなります。
- [設定] ツールバーの [スタイル] をクリックします。 [スタイル] ウィンドウの [タイプ (個別値シンボル)] スタイルで [スタイル オプション] をクリックします。
- [Wildfire Daily Fire Perimeter] の赤いシンボルをクリックします。
- [シンボル スタイル] ウィンドウで [色] をクリックします。 [色の選択] ウィンドウで、「#F7ADA4」と入力し、[完了] をクリックします。
- [シンボル スタイル] ウィンドウの [塗りつぶしの透過表示] に「50」と入力します。
- [アウトライン色] をクリックします。 [色の選択] ウィンドウで、「#E60C0C」と入力し、[完了] をクリックします。
- [シンボル スタイル] ウィンドウの [アウトラインの透過表示] で、「0」と入力します。
- [スタイル オプション] ウィンドウで、[Prescribed Fire] のシンボルをクリックします。 [シンボル スタイル] ウィンドウで、次のパラメーターを設定します。
- [塗りつぶし色] に「#E8BD71」と入力します。
- [塗りつぶしの透過表示] で、スライダーを [50] パーセントに移動します。
- [アウトライン色] に「#E5A53E」と入力します。
- [アウトラインの透過表示]で、スライダーを [0] パーセントに移動します。
[USA Current Wildfires - Current Perimeters] レイヤーのカテゴリのスタイルが構成されます。
- [スタイル オプション] ウィンドウで [完了] を 2 回クリックします。
延焼範囲が業界標準に合うようにシンボル表示されるようになります。
- マップを保存します。
ポップアップのカスタマイズ
ポップアップは Web カートグラフィにとって重要な要素です。 特定のマップの目的に必要な情報を明確に伝える効果的なポップアップをカスタマイズします。 [Current Incidents] レイヤーと [Current Perimeters] レイヤーにはポップアップがすでに構成されていますが、Current Perimeters ポップアップを改善して、NULL 値をうまく処理できるようにすることができます。
- マップ上で延焼範囲ポリゴンのいずれかをクリックして、ポップアップを表示します。
ポップアップには焼失面積が含まれます。 ただし、火災のサイズが不明の場合もあります。 これは、特に新しい火災でよく見られます。 このような場合、ポップアップには焼失したエリアの数値が表示されません。
焼失面積がゼロであることを示すポップアップを表示しないようにします。 ほとんどの場合は焼失面積を返すが、利用できる数値がない場合には代わりにテキスト「Not Available」を返す最終的な Arcade 式を 1 つ作成します。
- ポップアップを閉じます。
- [レイヤー] ウィンドウで [USA Current Wildfires – Current Perimeters] レイヤーがアクティブになっていることを確認します。 [設定] ツールバーの [ポップアップ] をクリックします。
- [ポップアップ] ウィンドウで [属性式] をクリックします。
- [属性式] ウィンドウで [式の追加] をクリックします。
- [式] ウィンドウで、既存のテキストを削除し、「var GISAcres = ! IsEmpty($feature.GISAcres)」をコピーして貼り付けます。
この変数は、[GISAcres] フィールドが空ではないことをテストして確認します。 [!] は否定を意味します。
- Enter を 2 回押して「return GISAcres」と入力します。 [実行] をクリックします。
結果が [true] の場合、テスト フィーチャで [GISAcres] フィールドが空でないことを意味します。つまり、そのフィールドには焼失した面積の値があります。
- [return GISAcres] を削除して、次のテキストをコピーして貼り付けます。
If (GISAcres) Return text($feature["GISAcres"],'#,###.##')
この行は、[GISArcres] 変数が true の場合、[GISAcres] フィールドのテキストを返し、桁区切り記号と小数点以下第 2 位までを使用した数値として書式設定することを示しています。 ほとんどの場合、数値が返されます。 ただし、[GISAcres] 変数が true ではなく false を返した場合のケースをカバーするように If ステートメントを作成する必要があります。
- 次の行に、「Return "Not Available"」を入力します。
- [実行] をクリックします。
結果は、数値またはテキスト [Not Available] のいずれかになります。
- 式の名前を「Acreage」に変更します。
完成した式は、次の式に一致する必要があります。
var GISAcres = ! IsEmpty($feature.GISAcres) If (GISAcres) Return text($feature["GISAcres"],'#,###.##') return "Not Available"
- [完了] をクリックします。
次に、新しい式をポップアップで使用します。
- [属性式] ウィンドウの [戻る] 矢印をクリックします。
- [ポップアップ] ウィンドウで、[テキスト] をクリックし、[テキストの編集] をクリックします。
- テキストの編集ウィンドウの 3 行目にある [{GISAcres}] を削除します。
- [Acres Burned:] の後にポインターを置き、[フィールド名の追加] ボタンをクリックします。
- [Acreage{expression/exp1}] をクリックします。
式がポップアップのコンテンツ テキストに追加されます。
- [OK] をクリックします。
マップ上で、延焼範囲フィーチャのいくつかをクリックします。 [Acres Burned] 行は、以前のほとんどのフィーチャと同じように見えます。
しかし、[Acres Burned] の値がない火災について、焼失面積が利用できないことをポップアップが明確に示すようになりました。
- ポップアップを閉じ、[ポップアップ] ウィンドウを閉じます。
- [レイヤー] ウィンドウで [USA Current Wildfires – Current Incidents] レイヤーをオンにして、完成したマップを探索します。
- マップを保存します。
このチュートリアルでは、Web マップのシンボルをカスタマイズする方法を学習しました。 カスタム グラフィックスをマップ シンボルとして使用しました。 Arcade を使用して、複数のフィールドの情報が表示されるようにデータを分類しました。 シンボルのサイズを制御して、どの縮尺でも見栄えが良くなるようにしました。 火災のラベルと範囲ポリゴンをスタイル設定し、一層正確な情報を表示するようポップアップを構成して完成しました。
データセットやマップはどれも伝える必要があるものが多少異なるため、火災カートグラフィにはある程度のカスタマイズが必要になります。 [USA Current Wildfires] レイヤーに適用した設計の考慮事項と手法は、多数のマップに関連しています。
カートグラフィのその他のチュートリアルについては、カートグラフィの概要ページをご参照ください。
他のチュートリアルについては、チュートリアル ギャラリーをご覧ください。