はじめましてこんにちは。お久しぶりです半年ぶり。テラスカイの渕上です。
あんまりブログの執筆頻度が上がるとドキドキ(ヒリヒリ)しますねーw
このブログを読んでいただく方に、少しでもお役に立つことが伝えれれば幸いです。
さて、
標題の通りEinstein Analyticsで、日本地図を表示させるグラフを作ってみたので、その方法を紹介したいと思います。
Einstein Analytics使ってます??
なかなか使う機会が無い方もいらっしゃるかと思いますが、下記からEinstein Analyticsが利用可能なDeveloper環境を取得することが出来ますので是非触ってみてください。
Einstein Analytics | Salesforce Developers
現時点(Spring ‘18時点)のEinstein Analyticsで選べる地図グラフには日本地図が無い為、今回の様に自分で作成する必要がありますが、近い将来、デフォルトで日本地図が選択可能になるかもしれません。
ですが、「カスタム地図グラフ」を作成することにより、特定の地域だけだとか市区町村レベルだとか、ユーザの要望に合った地図グラフが利用可能になります(その地図のGeoJSONは必要ですが)ので、覚えておいて損はないかもしれません。
「カスタム地図グラフ」についてはこちらのヘルプにも記載有りますので、併せてご参照ください。
大まかな作業としてはですね、以下の2つだけですね。興味ある方はDeveloper環境で試してみてください。
- 都道府県別の日本地図のGeoJSONの準備
- カスタム地図の登録
都道府県別の日本地図のGeoJSONの準備
まずは元になる日本地図を用意する必要があります。
今回は、こちらのファイル
地球地図日本( http://www.gsi.go.jp/kankyochiri/gm_jpn.html )に掲載されているShapefileを変換し、ジオメトリー以外のデータとして、都道府県名(日本語と英語表記)とID(prefectures.csvで使用しているもの)を付加したファイルで、都道府県ごとに境がある日本地図。
を使わせていただきます。
このGeoJSONファイルは、12.4 MBあります。 先のヘルプにもありますが、「サポートされる最大ファイルサイズは 10 MB 」になりますので、ファイルを単純化する必要があります。 単純化は下記のサイトを利用させていただきました。
「mapshaper」に遷移後、下の「Quick import」エリアに、先にダウンロードした「japan.geojson」ファイルをDropします。
次に右上の「simplify」をクリックし、デフォルトの設定のまま「Apply」をクリックします。
上部に「Settings」が表示されますので精度を調整します。用途に合わせて調整頂ければと思いますが、今回は「1.0%」でやってみます。
最後に右上の「Export」をクリックし、デフォルトのまま「Export」をクリックし、任意の場所に保存します。
すっかり軽くなりましたー!
あとはですね、この出来上がったファイルを少し修正する必要があります。
地図にデータを正しく重ねるには、GeoJSONのプロパティの1つに、一意に一致する値を持つ列がデータに含まれる必要があるからです。
{ "type":"Feature", "geometry":{ "type":"Polygon", "coordinates":[[[134.867095947266,・・・ }, "properties":{ "nam":"Kyoto Fu", "nam_ja":"京都府", "id":26 } },
今回作成したJOSNは上記のような構造になっています。
"id" プロパティは、"properties"と同レベルでなく子になっているため、"properties"の子の"name"がデータの列と一致するキーになります。メモ帳等で以下の置換を行い、保存してください。
- 検索する文字列:nam_ja
- 置換後の文字列:name
これでGeoJSONの準備は完了です!
カスタム地図の登録
※※2019年3月時点で、カスタム地図の登録方法が変わってたので、簡単に補足します※※
前提:要「Analytics のカスタム地図を管理」権限
対象の地図のコンポーネントのフォーマッティングの「対応付け種別」の隣に、「+」が表示されます。こちらをクリックすると、「新規地図」画面が表示されますので、ここからGeoJSONを登録してください。
--------------------------------------------------------------------------------
ここからはもうヘルプの通りなんで割愛‥てのもなんなので、ちょとだけ補足しつつヘルプを踏襲してみます。
1.Salesforce 組織にログインしているときに、組織のベース URL に/analytics/wave/web/custommap.apexp を追加して形成される URL に移動します。 たとえば、組織のベース URL が「https://na30.salesforce.com」の場合、https://na30.salesforce.com/analytics/wave/web/custommap.apexp に移動します。
2.[新規(New)] をクリックします。(別タブで)新しいカスタム地図の挿入ウィンドウが表示されます。このウィンドウには、GeoJSON のパネルと地図自体のパネルの 2 つのパネルがあります。
3.GeoJSON セクション(上段のセクション)で必須項目 (赤色で表示) に入力し、読み込む GeoJSON ファイル(さっき作ったやつ)を選択します。GeoJSON 名と表示ラベルは、カスタム地図の管理画面で使用されます。
4.[挿入(Insert)] をクリックし、(ページ下部の)[結果(Result)] セクションで確認メッセージ(Successfully inserted new GeoJson:とId)を探します(探す?)。
5.地図セクション(下段のセクション)で必須項目 (赤色で表示) に入力します。地図名と表示ラベルは、Analytics で使用されます。
6.アップロードする地理情報データの種類に基づいて射影(Projection)を選択し(「Mercator(メルカトル図法)」で良いかと)、作成した GeoJSON 定義を選択します。
(Bounding Box(境界ボックス)は地図の端となる緯度経度(相対値でなく絶対値)を設定することにより、表示範囲を調整することが出来ます。トリミングみたいな感じですね。)
7.[地図を挿入(Insert Map)] をクリックし、[結果(Result)] セクションで確認メッセージ(Successfully inserted new Map:とId)を探します。
8.地図を表示するには、エクスプローラで、地図グラフを選択し、[地図の種類] をクリックします。 (Analytics Studioからダッシュボードを表示し、グラフにて地図グラフ(地図・バブルマップ・ジオマップのいずれか)を選択し、「地図」セクションの「対応付け種別」の選択肢の下部に、作成した地図があれば成功です。的な?)
という感じで、踏襲という名のコピペになりましたが、以下のキャプチャの様に、カスタム地図を選択できるようになりましたでしょうか?
あと、
一応、以下にサンプルとして適当なCSVを置きますので、良ければあくまで確認用に利用ください。
なお、今回執筆にあたり、「ジオマップ」を初めて触りましたが、これ面白そうですね。色んな用途がある気がしますねー!
それでは、またー。