ArcGIS Arcade で手軽に多言語対応!Web マップの言語切り替えガイド – ラベル編 –

はじめに

ArcGIS Online では、ArcGIS Arcade (以下「Arcade」) を使用し、マップの閲覧者の言語環境に応じてフィーチャのポップアップやラベルを切り替えて表示できます。この機能を利用すると、1 つの Web マップで複数の国や地域の人々に情報を届けることが可能になり、言語ごとにマップを分けて作成する必要がなくなります。

例えば観光地のマップを作成する際、日本語のほかに英語、韓国語など、異なる言語で情報を提供することができます。これにより、Web マップの訪問者がそれぞれの母国語で情報を得られるため、作成者の負担が減るだけでなく、観光客の満足度向上にもつながります。

本ブログでは Arcade を活用して多言語対応の Web マップを作成する手順を具体的なコードを示しながらご紹介します。前編のラベル編では Arcade や今回使用する関数の概要を説明したのち、ラベル言語の切り替えを 3 つのステップに分けて行います。

ぜひ ArcGIS Online にサイン インし、以下のマップを使用して実際に操作しながらお読みください。

ArcGIS Arcade とは

Arcade とは ArcGIS 上で使用することを目的に開発された式言語で、ArcGIS Pro や ArcGIS Online、開発者製品などで使用できます。一般的な式言語と同様に数学的な演算や評価ロジックの命令語が利用でき、プログラミング未経験の方でも比較的手軽に使い始めることができます。

Arcade の詳細については、以下のページをご参照ください。

今回は Arcade 関数の中から GetEnvironment() 関数を使用し、ポップアップやラベルの言語を切り替えます。

GetEnvironment() 関数

GetEnvironment() 関数を活用すると、環境辞書内に保存されているロケール キーを取得し、閲覧者の言語環境に合わせてポップアップやラベルの内容を切り替えることができます。

ロケールはブラウザーまたは ArcGIS アカウントの言語設定に基づいています。ターゲット言語のロケールについては、こちらをご参照ください。

以下の Arcade 式では GetEnvironment() 関数を使用して環境設定からロケール情報を取得し、それを locale 変数に保存します。

var env = GetEnvironment(); 
var locale = env['locale']; // 現在のロケールを変数として格納

この式を基本として、実際にラベル言語を切り替える式を構成していきます。

Arcade を使用して多言語対応の Web マップを作成

ステップ 1: 属性データの用意

Arcade を使用してラベルやポップアップの言語を切り替えるには、複数の言語に対応した属性データが必要です。

今回使用する日本の活火山レイヤーは日本語または英語環境で利用することを想定し、山名やラベル名といった属性データが日本語と英語の両方で格納されています。また、どちらの言語にも対応できるように [標高] フィールドには数値形式のデータを、[日本百名山] フィールドには当てはまるかどうかを示すフラグ形式のデータを格納しています。

ステップ 2: Arcade を使用したラベル言語の切り替え

デフォルトではレイヤーのラベルは無効になっています。今回は Arcade 式を参照したラベルを使用するため、以下の手順でラベルを有効化し、Arcade 式の構成を開始します。

  1. 設定ツールバーで [ラベル] をクリックし、[ラベルの有効化] をオンにします。
  1. [ラベル フィールド] セクションで [</>] をクリックし、式の設定ウィンドウを開きます。

次に、ロケールが英語の場合は「ラベル (英語)」フィールドを表示するように if キーワードを活用して式を構成します。

以下の式は、日本語のラベルをデフォルトとし、ロケールが英語 (en) の場合には英語のラベルを返します。

var env = GetEnvironment(); 
var locale = env['locale']; // 現在のロケールを変数として格納

if (Left(Lower(locale), 2) == 'en') {
  return $feature.LABEL_EN; // 英語の場合は LABEL_EN (英語のラベル) の値を返す
} else {
  return $feature.LABEL; // それ以外の場合は LABEL (日本語のラベル) の値を返す
}

構成した式を以下の手順でラベルに設定します。

  1. ウィンドウにすでにある式を消去し、上の式を入力します。
  2. [実行] をクリックし、式をテストします。
    私のロケールは jp で en ではないため、「知床硫黄山」という値が返されます。
  3. 式のタイトルをクリックし、「ラベル」に変更します。
  4. ウィンドウ右下の [完了] をクリックします。
  1. マップにラベルが表示されるようになりました。現在のロケールは日本語 (jp) のため、日本語で表示されています。
  2. ラベルは通常と同様にスタイルを調節できます。ラベル スタイルの編集については ArcGIS Online 逆引きガイドをご参照ください。
    今回は以下のようにスタイルを設定しました。
  • サイズ: 3
  • 色: #c2002d
  • ハロー
    • サイズ: 2
    • 色: #ffffff

Arcade を使用して以下のようにラベルを設定できました。

ステップ 3: ロケールを切り替えて確認

それでは、ラベルが正しく設定されているかを確かめます。[保存と開く] → [名前を付けて保存] から、任意の名前でマップを保存した後、URL の末尾に「?locale=en」を追加して、ブラウザーを再度読み込みます。

ロケール URL パラメーターを使用すると、ArcGIS アカウントやブラウザーの設定を変更することなくロケールを変更し、Arcade 式をテストできます。

まとめ

本ブログでは ArcGIS Online で Arcade を利用してラベルの言語を切り替え、多言語対応の Web マップを作成する方法についてご紹介しました。後編のポップアップ編では、複雑な場合分けや書式設定など、より多くの機能を利用したポップアップの言語の切り替えについて詳しくご紹介します。

ぜひ皆さんも ArcGIS Arcade を使用し、多言語対応のマップの作成に挑戦してみてください!

参考情報

フォローする