Kepler.glの見た目を整える

kepler.glを利用する時にちょっと役に立つtips

こんにちは、AI技術開発部の秋月達樹です。

この記事では、地理空間情報の可視化ツールである「kepler.gl」について、単に地図を描画するだけでなく、視認性を高めて実務的なインサイト(気付き)を得やすくするためのtipsを紹介します。

※なお、本記事で使用しているキャプチャには、すべて説明用のダミーデータを使用しています。

kepler.glとは

kepler.glは、オープンソースとして公開されている地理空間情報の可視化支援ツールです。高度な専門知識が必要な従来のGISソフトとは異なり、Webブラウザ上で直感的に操作できるのが特徴です。GOでも社内向けにkepler.glサーバーが用意されており、社員は申請すると利用できます。

地理空間情報の可視化には幅広い選択肢が存在します。 その中でkepler.glは、以下の点で利便性が高く、社内でもデータ探索やレポーティングに広く利用されています。

  • UIがわかりやすく、ノーコードで多様な可視化手法に対応できる
  • 数十万件の大量のデータを渡しても描画レスポンスが悪くなりづらい
  • 作成した地図(URLやHTMLファイル)の結果共有がしやすい

参考(kepler.glのデモページ)

【比較表】主な地理空間情報の可視化ツール

ツール名 主なインターフェース 想定データ規模の目安
kepler.gl GUI (ブラウザ) 数十万〜数百万件
CARTO GUI / SQL 数百万件〜 (DWH依存)
Datashader Python 数億〜数十億件
QGIS GUI (デスクトップ) 数十万件〜 (PC依存)
deck.gl JavaScript / React 数百万件〜
folium Python 数千〜数万件
plotly Python / R / JS 数万〜数十万件

kepler.glで可視化できる情報

kepler.glの強みは、単純な緯度経度による「点(Pointレイヤー)」のプロットにとどまらない表現力の豊かさにあります。

乗降地などの2点間を結ぶ「Arcレイヤー」や「Lineレイヤー」、特定のエリアの需要密度を色や高さで可視化する「Hexbinレイヤー」や「Heatmapレイヤー」、さらには時間経過に伴う車両や人の動きをアニメーションで追える「Tripレイヤー」など多岐にわたります。

データの性質と「何を知りたいのか」という目的に合わせて適切なレイヤー(可視化手法)を選択することが、質の高いインサイトを得る第一歩となります。

【一覧表】kepler.glの可視化レイヤー

レイヤー名 必要な入力値 特徴・用途
Pointレイヤー 緯度・経度 地点データの分布確認。特定の地点プロットに使用
Iconレイヤー 緯度・経度・アイコン名 単なる点ではなくアイコンをマーカーとして配置
Heatmapレイヤー 緯度・経度・重み 密集エリアのグラデーション表示。ホットスポットの特定
Gridレイヤー 緯度・経度 正方形メッシュで集計。密度や平均値の表現
Hexbinレイヤー 緯度・経度 六角形メッシュで集計。密度を色や高さ(3D)で表現
Clusterレイヤー 緯度・経度 密集地点を1つの円に集約表示
Arcレイヤー 始終点の座標 2点間を放物線で連結。ODデータ(起終点)などを立体的に可視化
Lineレイヤー 始終点の座標 2点間を直線で連結。ODデータ(起終点)などを平面に可視化
H3レイヤー H3インデックス 六角形階層グリッド「H3」による高速な描画・集計
S2レイヤー S2トークン 球面グリッド「S2」による四角形メッシュの描画・集計
Polygonレイヤー GeoJSON 境界や営業エリアの面的な塗りつぶし。行政区画の集計
Tripレイヤー 座標・時間軸 時間経過に伴う移動軌跡のアニメーション再生

課題感:情報のオーバーロード

多様な可視化手法が選べ、大量のデータを容易に処理できるからこそ陥りがちな課題があります。それが「情報過剰による可読性の低下」です。データを全て表示できたからといって、自動的にインサイトが得られるわけではありません。

例えば、タクシーの利用ユーザーの移動経路を明らかにしたい時、取得したOD地点のデータを愚直にすべて線で結んでしまうと、以下のようになります。

新宿駅周辺のタクシー利用<ダミーデータ>

画面が線で埋め尽くされてしまい、具体的に「どこから、どこを目的とした移動が多いのか」というメインの傾向が判別できません。また、データが背景を塗りつぶしてしまうため、土地勘がない場所ではそこが駅なのか商業施設なのかといった地点属性すら分からず、分析が行き詰まってしまいます。

こうした「ただデータを描画しただけの地図」から脱却し、kepler.gl上で可読性を上げてインサイトを引き出すための設定方法を紹介します。

可読性を上げるためのtips

1. Interaction機能による「動的な探索」

地図を「ただ眺める静的な画像」から、「マウス操作で深掘りできる動的な分析ツール」へと変えるのがInteraction機能です。画面左側のサイドパネルから「Interaction」タブを開いて設定します。大量のデータから必要な情報をノイズレスに抽出するのに非常に有効です。

特に以下の機能を駆使することで、分析精度を高めることができます。

項目名 概要・効果
Tooltip マウスホバーで指定したカラムの詳細属性(距離や料金など)を表示
Brush カーソル周辺のデータのみをハイライト。移動の偏りなどの動的な抽出
Geocoder 検索窓を用いた特定の地名や住所への瞬時な移動
Coordinate クリック地点の緯度経度のクリップボードへのコピー

例えばBrush機能を利用すると、マウスカーソルの周辺を発着するデータのみが浮かび上がります。画面全体を覆っていた不要な線を一時的に隠すことができるため、特定の交差点や施設に焦点を当てた詳細な確認が可能になります。 Brushを利用した例<ダミーデータ>

2. Map Layers設定による「視覚的な優先順位」のコントロール

見やすい地図を作る上で、データの見せ方と同じくらい重要なのが「背景地図のノイズコントロール」です。 画面左側のサイドパネルから「Base map」タブを開くことで、背景情報の表示・非表示の切り替えだけでなく、描画の順序を調整できます。

設定項目は主に以下の5種類です。これらを調整することで、データと背景情報の重なり順を最適化し、視覚的な優先順位を整えます。

項目名 役割
Labels 地名や駅名などのテキスト情報。最前面(Top)への配置も可能
Roads 幹線道路や細街路などの線情報
Borders 都道府県や市区町村の境界線
Buildings 建物の形状。3D機能による立体化
Water / Land 海や川、緑地などの背景カラー

特におすすめなのが、Labelsの描画順序を設定することです。描画された可視化データの下に隠れていた地名が前面に出てくるため、土地勘がなくても地点属性が瞬時に把握できるようになり、データ解釈が非常にスムーズになります。 Labelsを利用した例<ダミーデータ>

まとめ

今回、kepler.glを利用して地理空間情報を可視化し、インサイトを得る際に役立つtipsを紹介しました。

大量のデータを扱えるツールだからこそ、「必要な情報だけを浮かび上がらせる(Interaction)」「背景のノイズを整理する(Map Layers)」といった引き算のアプローチが分析の質を大きく左右します。

地理空間情報の可視化をする際の一助となれば幸いです。 最後まで見ていただきありがとうございました。