← ポートフォリオに戻る

ケーススタディ

Bus Mauritius:書類から作った交通マップ

モーリシャス全土をカバーする公共交通機関はバスだけですが、公式の時刻表は文書ファイルでしか存在しませんでした。路線図も、経路を調べる手段もありません。その両方を一人で作り、2026年9月12日に公開しました。

68倍Googleからの週間クリック数(公開時 7 → 現在 473)
6.3位Googleでの平均掲載順位(公開時は10.6位)
446Google検索に表示されたページ数(公開時は2)
6,700+乗換案内での経路検索数(10月9日以降)

これまでの成果

8週間、広告なし

公開からの累計 · 2026年9月12日〜11月10日Google Search Console、Cloudflare Web Analytics
週ごとの数値
週訪問数Googleクリック数Google表示回数
9月12日 – 9月18日1407377
9月19日 – 9月25日1909492
9月26日 – 10月2日330361,852
10月3日 – 10月9日560523,014
10月10日 – 10月16日650804,075
10月17日 – 10月23日1,0201736,174
10月24日 – 10月30日75025211,352
10月31日 – 11月6日84040714,399
11月7日 – 11月10日(4日間)7082819,146
  • Googleからのクリック数は、公開週の7から直近週の473へ。
  • Googleでの平均掲載順位は10.6位から6.3位へ。
  • Google検索に表示されるページ数は公開週の2から現在の446へ。
  • 2か月目の訪問数は1か月目の2.7倍(1,420 → 3,768)。
  • 公開前の自分の予測は初月100〜300訪問でした。実際は約1,400訪問です。
  • 実際に使われています:10月9日以降6,700件以上の経路検索、現在は1日あたり約295件。
284路線停留所1,500以上700ページ以上4言語

課題

地図のない時刻表

交通当局は路線ごとに、運賃区間の名称、所要時間、始発・最終、運行間隔を一覧で公開しています。しかし座標はなく、リアルタイム情報もありません。「ここからあそこまで、どのバスに乗ればいいのか」という単純な疑問すら、調べる手段がありませんでした。

元の資料は運賃表であって、利用者向けのサービスではありません。旅行者に必要な情報は、すべてそこから組み立て直す必要がありました。

データ

区間名から路線の線へ

  1. 文書を解析。すべての路線、方向、運賃区間、所要時間、運行間隔を構造化データに変換します。
  2. 区間を地図上で特定。区間名をOpenStreetMapと照合します。ひとつの名称に複数の候補が見つかることがほとんどです。
  3. もっともらしい並びを選択。ひと続きの経路として自然につながる場所の組み合わせを系列アルゴリズムで選び、同名の別の村に区間が置かれるのを防ぎます。
  4. 道路をたどる。区間と区間のあいだを、実際の道路網に沿って線にします。
  5. 検証。不自然な飛びや遠回り、路線によって位置がずれる停留所を自動レポートで検出し、残りは手作業で修正します。

プロダクト

サーバーのいらない乗換案内

乗換案内はすべて利用者のブラウザ内で動きます。乗り換え、徒歩、所要時間、運賃を含むドア・ツー・ドアの経路を探し、選んだ時間帯の公表運行間隔から待ち時間を見積もります。サーバーには何も送らないため、電波の弱い場所でも高速です。

すでにバス停にいる人のために「どのバス?」を用意しました。目的地を一度選べば、来たバスを緑・黄・グレーで判定します。オフラインでも動きます。

リアルタイム位置情報の試験運用も進行中です。運転手が54KBのAndroidアプリで位置を共有すると、バスが路線上を動く様子が地図に表示されます。

検索

データに組み込んだSEO

すべてのページは、地図と同じデータセットから生成しています。路線ごと、バスターミナルごとのページ、運賃、空港アクセス、事業者、よく使われる区間などです。データで十分に裏づけられないページは、内容の薄いまま公開せず、インデックスの対象から外しています。

事前の調査で、需要の大きい順(バスターミナル、運賃、個別路線)を把握し、その順番で制作しました。フランス語、ドイツ語、ロシア語のセクションは、それらの言語での流入が検索データに現れてから追加しました。

技術構成

小さく、静的で、低コスト

データ処理
Python、OpenStreetMapの道路グラフ
地図
MapLibre(自前ホストのベクタータイル)
乗換案内
素のJavaScriptによるRAPTOR経路探索
ページ
データセットからテンプレートで生成
ホスティング
Cloudflare Pages(アプリケーションサーバーなし)
リアルタイム位置情報
Cloudflare Workers、ネイティブAndroidアプリ