Oracle APEX 21.1の新機能であるマップ・リージョンを使って、都道府県の県庁所在地とそれぞれの都道府県の人口をヒートマップとして表示させてみます。
都道府県の県庁所在地の座標データはアマノ技研さんが公開しているデータを使用しています。
必要事項を入力し、ダウンロードをします。ダウンロードされたasti-datr0304po.zipというファイルに含まれるr0304puboffice_utf8.csvをデータベースに取り込みます。では、マップを表示するまでの作業ログを記載します。都道府県ごとの人口の情報は、以前の記事で作成した表EGOV_POPULATIONを参照するため、そちらの作業を先に実施する必要があります。
データをロードするための表を作成します。SQLワークショップのユーティリティよりクイックSQLを実行します。以下のモデルより表を作成します。
# prefix: amano
# semantics: default
municipality_location
jiscode num
name vc40
namekana vc80
building vc80
zipcode vc8
address vc160
tel vc20
source vc40
lat num
lon num
note vc80
モデルの入力を行い、SQLの生成、SQLスクリプトを保存、レビューおよび実行を順次実施します。
CREATE文をレビューし、実行をクリックします。確認画面が表示されるので、そこで即時実行をクリックします。
表が作成されたら、アプリケーションの作成を開始します。こちらも確認画面が表示されるので、アプリケーションの作成を再度クリックします。
アプリケーションの名前を都道府県人口とし、アプリケーションの作成を行います。
アプリケーションが作成されたら、地方公共団体の位置データを読み込むために、データ・ロード定義を作成します。共有コンポーネントのデータ・ロード定義を開きます。
データ・ロードの作成として最初からを選択し、次へ進みます。
名前としてMUNICIPALITY_LOCATIONを指定し、ターゲット・タイプは表、表名として先程作成したAMANO_MUNICIPALITY_LOCATIONを選択します。次へ進みます。
サンプル・ファイルとしてアマノ技研さんよりダウンロードしたファイルr0304puboffice_utf8.csvを指定します。次へ進みます。
ナビゲーションのプリファレンスとして、新規ナビゲーション・メニュー・エントリの作成を選びます。次に進みます。
デフォルトで指定される値は変更不要なので、そのまま作成を実行します。
作成されたページを実行して、データのロードを行います。
ファイルの選択をクリックして、r0304puboffice_utf8.csvを選択します。
データ・ロード終了:1963行が処理されました。と表示され、データのロードが完了します。
新規にリージョンの作成を行い、識別のタイトルを都道府県人口とします。タイプにマップを選択し、ソースの位置はローカル・データベース、タイプはSQL問合せとします。
SQL問合せには以下を記述します。
select
l.name, l.address, l.lat, l.lon,
p.total
from egov_population p join amano_municipality_location l
on p.prefecture_name = l.name
where p.city_name is null and p.gender = 'T'
新規と表示されているレイヤーを選択し、識別の名前を人口、レイヤー・タイプにヒート・マップを選択します。ソースの位置にリージョン・ソースを選択します。列のマッピングとして、ジオメトリ列のデータ型に経度/緯度、経度列にLON、緯度列にLATを選択します。外観の値列はTOTALを選択します。
新規にレイヤーの作成を行い、識別の名前を都道府県とし、レイヤー・タイプにポイントを選択します。ソースの位置はリージョン・ソースです。列のマッピングとして、ジオメトリ列のデータ型に経度/緯度、経度列にLON、緯度列にLATを選択します。
&NAME.
<br/>
住所: &ADDRESS.
<br/>
人口: &TOTAL.
以上でアプリケーションの完成です。アプリケーションを実行すると、各都道府県の県庁所在地とその場所を中心とした人口のヒートマップが表示されます。
https://github.com/ujnak/apexapps/blob/master/exports/pref-pop-heat-map.sql
Oracle APEXのアプリケーション作成の参考になれば幸いです。
完