諫早の商店街をもう少し分かりやすく見える形にできないかと思ったので、
店舗情報を地図上にプロットする簡単な仕組みを作ってみました。
実際のマップは以下です👇
やったこと
やっていること自体はシンプルで、
- 商店街サイトから店舗情報を取得
- テキストデータを整理
- 住所から緯度経度を取得
- 地図上にプロット
という流れです。
いわゆる
非構造データ → 構造化 → 空間データ → 可視化
という一連の処理をそのままやっています。
データ取得でハマったところ
今回一番大変だったのは、最初のスクレイピングでした。
上記のページから情報を取得していますが、
一見整理されていそうに見えて実際にはHTML構造が崩れていて、
- 見出しタグが使われていない
- データが連続したテキストとして並んでいる
という状態でした。
そのため、HTMLとして解析するのではなく、
一度すべてテキストとして取り出し、
「通り名 → 店名 → ジャンル → …」
という並びを前提に、状態遷移的にパースしています。
地図化の仕組み
地図の描画には Folium を使用しています。
Pythonで地図データを生成すると、
最終的にはHTML + JavaScriptとして出力されるので、
- そのままブラウザで表示できる
- 今回のようにWordPressにも埋め込める
というのが便利なポイントです。
少しだけ工夫した点
現状はシンプルですが、以下を少し意識しています。
- 店舗ごとにポップアップ表示
- カテゴリ分け(今後拡張予定)
- 将来的にフィルタや分析に使える構造
まだ粗いですが、「見せる」フェーズには入ってきたかなという感じです。
今後やりたいこと
せっかくなので、もう少し発展させたいと思っています。
- カテゴリごとの色分け
- 表示フィルタ(飲食だけ表示など)
- 商店街ごとの特徴分析
- ヒートマップ化
せっかくなので、分析などに使って何か新しい価値を生み出せたらいいなとは思っています。
まとめ
今回やったことを一言で言うと、
商店街の情報を「地図」という形に変換した
という感じです。
技術的にはシンプルですが、
データの扱い方としては色々応用が効くので、
今後も少しずつ拡張していこうと思います。