2023年10月26日木曜日

テーマ・スタイルの選択に従ってマップ背景を切り替える

Oracle APEX 23.2で追加されたマップ・リージョンのマップ背景は、ユーザー・インターフェースのテーマ・スタイルの選択に従って切り替えることができます。

MapTiler CLOUDにあるJP MIERUNE GrayとJP MIERUNE Darkをマップ背景として作成します。テーマがライト・モードのときはマップ背景としてJP MIERUNE Grayを表示し、ダーク・モードのときはJP MIERUNE Darkを表示するようにします。

作成するアプリケーションは以下のように動作します。


以下より、アプリケーションを作成する手順を紹介します。

アプリケーションの名前JP MIERUNEマップとします。

アプリケーション作成ウィザードを開始します。


必須ではありませんが、せっかくなのでアプリケーションのアイコンをクリックして、地図のアイコンに変更します。

機能テーマ・スタイルの選択チェックを入れ、作成するアプリケーションにテーマ・スタイルを切り替える機能を追加します。

アプリケーションの作成をクリックします。


アプリケーションが作成されます。

ページ・デザイナホーム・ページを開き、マップ・リージョンを作成します。


Bodyの下にリージョンを作成します。

識別タイトルとして地図タイプとしてマップを選択します。


マップには最低でも1つのレイヤーが必要なので、レイヤーに最低限の設定を行います。

レイヤー新規を選択し、識別名前ポイントに変更します。レイヤー・タイプとしてポイントを選びます。

ソースタイプSQL問合せを選択し、SQL問合せとして以下のSQLを記述します。東京都の緯度経度を返しています。

select 35.652832 as lat, 139.839478 as lon from dual;

列のマッピングジオメトリ列のデータ型として経度/緯度を選択し、経度列としてLON緯度列としてLATを選びます。


マップ・リージョンを選択し、属性タブを開きます。

初期位置およびズームタイプ静的値とし、経度139.839478緯度35.652832ズーム・レベル6として、東京の周辺を最初に表示するようにします。


この時点でアプリケーションを実行すると、デフォルトのマップ背景が表示されます。


共有コンポーネントマップ背景を開きます。

MapTiler CLOUDJP MIERUNE GrayJP MIERUNE Darkマップ背景として作成します。


MapTiler CLOUDにアクセスし、JP MIERUNE GrayJP MIERUNE DarkスタイルシートをマップするURLAPIキーを確認しておきます。

MapTiler CLOUDMapsにアクセスします。



JP MIERUNE Grayを開き、Use vector styleのURLをコピーして保存しておきます。


同様にJP MIERUNE Darkも、Use vector styleのURLをコピーして保存しておきます。


Oracle APEXのマップ背景に戻り、作成をクリックします。


最初にマップ背景としてJP MIERUNE Grayを作成します。

名前JP MIERUNE Grayタイプとしてベクター・タイル・レイヤーを選択します。APIキーはMapTiler CLOUDよりコピーしたURLのkey=以降の値を設定します。スタイルシートをマップするURLとして以下を設定します。

https://api.maptiler.com/maps/jp-mierune-gray/style.json?key={api-key}

マップ背景の作成をクリックします。


マップ背景の編集画面が開きます。特に設定は変更しないので、変更の適用をクリックします。


同様の手順でJP MIERUNE Darkマップ背景を作成します。

名前JP MIERUNE DarkスタイルシートをマップするURLとして以下を設定します。

https://api.maptiler.com/maps/jp-mierune-dark/style.json?key={api-key}


マップ背景としてJP MIERUNE GrayJP MIERUNE Darkが作成されたら、マップ背景の準備は完了です。


ページ・デザイナホーム・ページを開きます。

マップ・リージョンを選択し、プロパティ・エディタの属性タブを開きます。

マップ背景として共有コンポーネントを選択し、標準としてJP MIERUNE Grayダーク・モードとしてJP MIERUNE Darkを設定します。

これで、ユーザー・インターフェースのテーマ・スタイルの選択に従って、マップ背景が変わるようになりました。


アプリケーションを実行し、エンド・ユーザーによるテーマ・スタイルの選択許可します。

ナビゲーション・メニュー管理を開き、テーマ・スタイルの選択を開きます。


開いたダイアログのエンド・ユーザーによるテーマ・スタイルの選択を許可チェックを入れます。

変更の適用をクリックします。


ナビゲーション・メニューよりホームを開きます。フッターの領域にカスタマイズというリンクが表示されます。


カスタマイズのリンクを開いて、テーマ・スタイルとしてVita - Darkを選択します。

変更の適用をクリックします。


全体のテーマ・スタイルがダーク・モードになり、マップ背景もJP MIERUNE Darkに切り替わります。


テーマ・スタイルに従ったマップ背景の切り替えの実装は以上で完了です。

最後に、ユーザーが選択できるテーマ・スタイルを、VitaとVita - Darkに限定します。

共有コンポーネントテーマを開きます。


アプリケーションに適用されているテーマであるUniversal Themeを開きます。


スタイルのセクションを選択します。

スタイルの内、VitaとVita - Darkを除く、RedwoodVita - RedVita - Slateパブリックオフに変更します。


編集画面を開き、パブリックオフに変更します。パブリックがオフの場合、エンド・ユーザーは、このテーマ・スタイルを選択できなくなります。


VitaVita - Darkのみがパブリックオンになるように変更し、テーマの変更の適用をクリックします。


エンド・ユーザーがカスタマイズをクリックすると、選択できるテーマ・スタイルがVitaVita - Darkのみになっていることが確認できます。


以上でAPEXアプリケーションは完成です。

Oracle APEXのアプリケーション作成の参考になれば幸いです。