【Esri Japan AI Weeks】ArcGIS Arcade アシスタントを使ってリッチな Web マップを作ろう

Arcade アシスタントを使ってリッチな Web マップを作成

ここまで Arcade アシスタントの利用方法をご紹介しました。ここからは実際に以下の機能に対して Arcade アシスタントを用いてリッチな Web マップを作ります。

  • ラベル
  • レイヤーのスタイル
  • ポップアップ属性
  • ポップアップのエレメント

今回は ArcGIS Living Atlas of the World 上にある「全国市区町村界データ2025」と「学校データ (国土数値情報 令和 5 年度)」のフィーチャ レイヤーを用いて行っていきます。

事前準備

Arcade アシスタントを使用する前に事前準備として ArcGIS Online にサイン インし、Map Viewer を開きます。その後、マップ上に「全国市区町村界データ2025」と「学校データ (国土数値情報 令和 5 年度)」を追加します。

ラベル

今回は「全国市区町村界データ2025」のレイヤーに対してラベルを設定します。このレイヤーのフィールドには市区町村名と市区町村名を英語表記にしたものがあります。この 2 つのフィールドを上下に並べて表示したいと思います。 はじめに、「全国市区町村界データ2025」のラベルを有効化し、ラベル クラスを追加します。

ラベルが有効化されたらラベル フィールドのプルダウンの右側にあるスクリプト アイコンのボタンをクリックして Arcade エディターを開きます。

Arcade エディターが開いたら Arcade アシスタントを開きます。

Arcade エディターが開いたら、テキスト入力欄に以下の指示文章を入力して Arcade の構文を生成します。

市区町村名の下に市区町村名の英語表記が表示されるようにしてください。

上記の指示に対する Arcade の構文が生成されたら、左下部の真ん中のボタンをクリックしてコード ブロックに構文を上書きます。

コード ブロックが更新されたらコード ブロック上部の [実行] ボタンをクリックして構文のテストを行います。

想定している結果が表示されるため、右下の [完了] ボタンをクリックしてマップ上でラベルが正しく表示されるかを確認します。

意図した結果が得られる構文を以下に記述します。

// ArcGIS Arcade アシスタント (ベータ版) によって生成された式
// AI-generated content may be inaccurate. Review before using.
$feature.CITY + TextFormatting.NewLine + $feature.CITY_ENG;

上記のようにラベルが想定した内容で表示されました。

レイヤーのスタイル

次に「全国市区町村界データ2025」のレイヤーに対してスタイルを設定します。このレイヤーには人口と面積のフィールドがあります。この 2 つのフィールドを元に人口密度を算出した値で [数と量(色)] のスタイルを設定したいと思います。

はじめに属性の選択で [式] ボタンをクリックして Arcade エディターを表示します。

Arcade エディターを開いたら Arcade アシスタントを開きます。

Arcade アシスタントが開いたら、テキスト入力欄に以下の指示文章を入力して Arcade の構文を生成します。

対象のフィーチャの人口密度を計算してください。

上記の指示に対する Arcade の構文が生成されたら、左下部の真ん中のボタンをクリックしてコード ブロックに構文を上書きます。

コード ブロックが更新されたらコード ブロック上部の [実行] ボタンをクリックして構文のテストを行います。

実行された結果を確認します。

実行された値を確認すると小数点以下の桁数がとても多く扱いにくいため、桁数を小数点第 2 位で丸めたいと思います。また、人口密度の計算をする際の面積は Shape_Area を元に計算をしていますが、Shape_Area に設定される面積は座標系の影響により精度が低くなるため、正確な面積を算出するようにしたいと思います。そのため、以下の指示文章のように詳細な指示で Arcade 構文を再生成します。

対象のフィーチャの人口密度を計算してください。条件は以下で計算してください。

・平方キロメートルで正しい面積を計算してから行うこと

・結果は小数点第二位で四捨五入する

上記の指示に対する Arcade の構文が生成されたら、左下部の真ん中のボタンをクリックしてコード ブロックに構文を上書きます。

コード ブロックが更新されたらコード ブロック上部の [実行] ボタンをクリックして構文のテストを行います。

構文を確認すると AreaGeodetic 関数で正しい面積を算出した値で人口密度を求めています。また、小数点第 2 位で四捨五入をするために Round 関数で丸めています。これにより想定した値になっているため [完了] ボタンをクリックします。 意図した結果が得られる構文を以下に記述します。

// ArcGIS Arcade アシスタント (ベータ版) によって生成された式
// AI-generated content may be inaccurate. Review before using.
var areaSqKm = AreaGeodetic($feature, "square-kilometers");
var populationDensity = $feature.P_NUM / areaSqKm;
return Round(populationDensity, 2);

完了することで、上記のように「数と量(色)」でスタイルが定義され人口密度で色分けがされました。必要に応じてカラー ランプを変更します。

次のページは:■ポップアップの Arcade アシスタントにて他のレイヤーを参照する高度な使い方を紹介します。

フォローする