2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ServiceNow】Mapレポートで市区町村レベルまで可視化する(ServiceNow設定編)

Posted at

はじめに

前回の記事 では、ServiceNow の Map レポートで市区町村レベルのヒートマップを作成するため、国土交通省が公開している国土数値情報の行政区域データをダウンロードして、ServiceNow へ取り込めるように加工しました。

今回は加工済みのデータを取り込み、実際に ServiceNow 上で表示するための設定を行っていきます。

以下の手順は PDI インスタンス(バージョン:Xanadu)で動作確認しています。

Map レポート用の設定

Report Map の登録

作成済みの GeoJSON ファイルの内容を ServiceNow に登録します。

ナビゲーションメニューで [All] > [Platform Analytics Administration] > [Map Settings] > [Maps] を選択し、Name が "Japan" のレコードを検索して開きます。

Report Mapテーブル

このレコードに各都道府県の地理情報データを紐づけていくのですが、その前に JSON definition フィールド内で北海道(Hokkaido)を検索し、hc-key の値をメモしておきましょう。

hc-keyの確認画面

関連リスト「Report Maps」で "New" ボタンをクリックすると新規フォーム画面が表示されるので、以下の情報を入力して "Submit" ボタンをクリックします。

  • Key : jp-hk (Japan の JSON definition フィールド内で検索した北海道の hc-key
  • Name : Hokkaido
  • Level : Level 3
  • JSON definition : (データ作成編で作成したGeoJSONファイルのデータを貼り付け)

北海道のReport Map画面

Map Source の設定

続けて Map Source の設定をしていきます。

ナビゲーションメニューで [All] > [Platform Analytics Administration] > [Map Settings] > [Map Sources] に移動し、Table が "incident" のレコードを検索します。

Map Sourceテーブル

PDI インスタンスにはデフォルトで「Incident assigned to location (アサイン先ユーザーの場所)」、「Incident on CI asset location(CIの場所)」などが用意されており、Incident テーブルに存在する各種フィールドの情報を利用した Map レポートの構成が可能です。
これらを流用してももちろん構わないのですが、今回は理解を深めるためにインシデントの場所(location)フィールドを直接参照して Map レポートに表示するための Map Source を定義してみます。

リスト画面右上部の "New" ボタンをクリックし、以下を入力します。

  • Name: Incident by location (名前は任意)
  • Table: Incidelt [incident] (デフォルトのまま)
  • Field: Location

Map Sourceの登録

入力したら Additional actions から "Save" を選んでクリックします。
入力内容が保存され、関連リンク「Generate map source levels」が表示されるので、そちらをクリックします。

関連リンク

クリックすると一度リスト画面に戻るので、先ほど保存した Map Source レコードを再び開きます。すると、関連リスト「Map Sources」にレコードが作成されています。

Incident by location (level 1)

level 1 と書かれているレコードをクリックするとその下には level 2 が紐づけられており、更に level 2 をクリックすると level 3 が紐づけられています。

Incident by location (level 2)

Incident by location (level 3)

注目すべきは各レコードの Field の値で、level 1 から順に location.country → location.state → location.city となっています。

すなわち、Map レポートはデフォルトでは、Location [cmn_location] テーブル上にあるこれらのフィールドの値を利用して国・都道府県・市区町村レベルのデータを出し分けているのです。

cmn_locationテーブルの説明

PDI インスタンスには日本地図よりも細かい粒度の情報は登録されていないため、stateフィールドと都道府県のマッピング情報、cityフィールドと市区町村のマッピング情報を登録していきます。

都道府県の Mapping group 登録

先ほど作成した Map Source の level 2 のレコードを開きます。

スクリーンショット 2025-09-30 2.33.09.png

Data transformation セクションに

  • How to use data: Use mapping
  • Use these mappings: Region and state mappings

が自動設定されていると思いますので、Use these mappings 右横の "Preview" アイコンからレコードを開きます。

Mapping group のフォーム画面が開き、関連リスト「Locations Mappings」に州/都道府県レベルのマッピング情報が登録されています。

Region and state mappings フォーム画面

日本の都道府県はまだ登録されていないため、 "New" ボタンをクリックして北海道の情報を登録しましょう。

  • Key: 北海道(場所[cmn_location]テーブルの state フィールドに入力する値と一致させる)
  • Value: jp-hk(Report Map の登録でメモした北海道の hc-key
  • Map: Japan

Key と Value の値を間違えやすいので注意!

Locations Mappingsフォーム画面

一旦ここまでで動作確認です。適当な Location レコードを作成して、Incident の Location フィールドに紐づけます。
Location には Country, State / Province, City のほか、Latitude(緯度)とLongitude(経度)も設定してください。

五稜郭跡の例

[All] > [Platform Analytics Administration] > [Usage and governance] > [Reports] から新規に Map レポートを作成します。
Configure の "Map this data" では、先の手順で作成した Map Source を選択しましょう。

問題なく設定できていれば、北海道に色のついた日本地図が確認でき、さらに北海道をクリックすると緯度経度をもとにデータポイントされた地図が表示されるはずです。

実行結果その1

市区町村の Mapping group 登録

市区町村も、都道府県と同様に Mapping group を登録することでヒートマップ化することが可能です。

作成した Map Source の level 3 のレコードを開きます。
Data transformation セクションの How to use data を "Use latitude and longitude" から "Use mapping" に変更し、Use these mappings の "Preview" アイコンからレコードを新規作成(New)します。

Map Sourceフォーム画面(level 3)

任意の名前をつけて "Submit" ボタンをクリックします。

  • Name : City mappings

City mappings

作成した市区町村用の Mapping group に、「データ作成編」で出力した Excel ファイルを使ってマッピング情報をインポートします。

フィルターナビゲーターに "sys_report_map_source_mappings.list" と入力して移動し、列オプションから Import を選択して Easy Import 画面に遷移します。
"Create Excel template" ボタンをクリックしてインポート用のテンプレートファイルをダウンロードしましょう。

ダウンロードしたテンプレートファイルの "Page 1" シートに以下の値を入力します。

  • Key: 「データ作成編」で出力したExcelファイルの name
  • Map: Hokkaido(Report map の登録で作成した北海道の Map 名)
  • Map Source Mapping: City mapping(直前で作成した mapping の名前)
  • Value: 「データ作成編」で出力したExcelファイルの hc-key

再び Easy Import 画面に移動し、作成した Excel ファイルをロードします。

インポート結果

ここまでできたら再度動作確認です。
先ほど使用したレポートで、北海道のヒートマップが表示されれば完成です!

実行結果その2

(参考)データの可視化(Data Visualization)用の設定

Report の場合は Incident のフィールドごとに Map Source を都度作成してやらなければなりませんでしたが、Data Visualization を使う場合はもっとシンプルです。

フィルターナビゲーターに "viz_map_source.list" と入力し、Map source テーブルに移動します。
"Location mapping" で始まる4つのレコードがありますので、level 3 のレコードを開き、How to use data を "Use latitude and longitude" → "Use mapping" に、Use these mappings を先ほど作成した "City mappings" に変更して "Update" ボタンをクリックします。

Map sourcesリスト画面

Map sources(level 3)フォーム画面

あとは ナビゲーションメニューから [All] > [Platform Analytics] > [Library] > [Data Visualizations] で GeoMap データの可視化を設定していきます。

反映まで少々待つ必要があるようですが、こちらでも問題なくヒートマップが表示されます。
また、Incident のどのフィールドの位置情報を使うかは Group by で自由に(Map sourceを追加せずに)選択可能になっています。

Data Visualizationによるヒートマップ図

課題

1点課題がありまして、今回利用した国土交通省の国土数値情報には離島の情報も含まれており、特に東京都の場合は島しょ部も含めて描画しようとするため、非常に見づらくなってしまいます。

東京都の地図

QGISというソフトウェアを使って地物の表示位置を移動する1 ことも可能(下図参照)なのですが、その場合は緯度経度情報を維持できないため、データポイントの描写が不可となります。

QGISで強引にインセット化した例

OOTB で用意されている日本地図だと沖縄がインセット化されているので不可能ではないはずですが、私が Highcharts ライブラリの仕様に詳しくないため、実現方法については一旦棚上げ状態となっています。

参考

  1. https://qgis.mierune.co.jp/posts/howto_use_geometry-generator-tool

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?