Edited at

Maps(GIS) Appで遊ぼう


はじめに

なんか、Elastic Stackの新機能をだらだら紹介し続けるシリーズになってます。

今回は、6.7から追加されるMaps(GIS) Appの紹介です。

(2019.03.14追記あり

(2019.05.30追記あり)

7.2以降では、EMSへのアクセス方法が変わりました!デフォルトでは、Kibana経由ではなく、ブラウザ経由でのアクセスになってます。

日本語メッセージを有効にした状態だと、Map系(Maps App/Region Map/Coordinator Map)が使えません・・・EMSClientを作るときi18n.localeが設定されていると、その値がlanguageの値として入りますが、i18n.localeの値であるja-jpだとダメらしい。zh-cnもダメ。デフォルト値はenだけど、それ以外の値はだめっぽい・・・


使い方

6.7以降のElastic Stackを用意します。

左ペインにかTop画面にMapsというリンクがあるので、クリックするだけです。


画面

サンプルデータを入れると、DashboardだけでなくCanvasも、Mapsも、ついでにLogsも表示されるようになります。

下の画面は、eCommerce ordersについてくるMapsの画面です。

でも、Proxyの内側で実行すると、こんな感じに地図が表示されません (;_;)

このままだとさみしいので、適当な地図を追加してあげます(Openstreetmapとか)。

でめ、まだエラー(Layersリストのところにうすーく黄色三角ビックリマーク付き)が出てます。

プロキシ環境下の方は直るまで待ちましょう・・・

#node-fetch使ってるところを修正しちゃえば良いんですが。


使い方

KibanaでMapというと、Coordinator MapやRegion Mapがあります(おっと、Vegaもありますね)。

これらは一つのデータソース(Index)だけ使うことができました。

Coordinator MapやRegion Mapでは、一つのフィールドを扱うぐらいしかできません。

ではMaps Appはというと、複数のデータソースを重ね合わせたり、複数のフィールドのデータを関連付けたりと、いろいろとできるようになります。

例えば先ほど表示したeCommerceのMapでは、Layerというところに、どんなデータソースからのデータを使っているかが表示されています。

さらにさらに、ある一定のズーム倍率のときだけ地図上に表示する、ということもできます。

eCommerceのMapでは、Sales layerがそれにあたります(最低9倍ズームにした時から表示されますが、ほかのLayerは0倍から表示されてます)。

ついでに、ほかのIndexのデータも表示してみます。

Layersの右横にある[Add layer]で表示されるリストから[Elasticsearch documents]を選んで、

適当なIndex(とりあえずkibana_sample_data_flights)を選んで、[Add layer]を押します。

特に何も変えずに[Save & close]を押すと、画面には赤丸がどばーっと表示されます。


おわりに

まだGA前の機能なので不安定なところはありますが、いろいろと遊べそうな機能ですね。

正式発表が待ち遠しい!


追記


2019.03.14分

ダッシュボードへの埋め込みができるようになりました(7.1以降)。

ダッシュボード作成画面で、追加できる項目をよーく見ると「[eCommerce] Orders by Country」があるのがわかります。

各項目の左側にアイコンが表示されてて、それがGaugeなのか、Saved Searchなのかとかがわかりやすいですね。

Mapを追加して見ると、こんな感じです。

んー、これは良い!