AIで日本の交通データを可視化——JARTIC API × MapLibre GL
AIで日本の交通データを可視化——JARTIC API × MapLibre GL
公共交通データをAIでリアルタイム取得・可視化するデモを公開しました。東京都内の了一般道路と首都高の交通量カウンターデータを、JARTIC((一社)日本道路交通情報センター)のオープンデータAPIから取得し、MapLibre GL JSで3Dマップ上に表示します。
デモを試す
Tailscale内アクセス(高速・安定):
http://x162-43-92-249.tail9c4209.ts.net:8888/
公网アクセス:
カウンターの色分けは交通量に応じて変化:
- ● 緑 — 闲散(120台/5分钟 미만)
- ● 黄 — 普通(120-240台/5分钟)
- ● 赤 — 拥堵(240台/5分钟以上)
技術スタック
| コンポーネント | 使用的技术 |
|—|—|
| 地图引擎 | MapLibre GL JS(开源,Mapbox GLのフォーク) |
| 地图样式 | OpenFreeMap Bright(免费图层) |
| データソース | JARTIC 道路交通情報オープンデータ API |
| バックエンド | Node.js(プロキシサーバー) |
| フロントエンド | Vanilla JS,单一HTML文件 |
核心コード解説
データ取得
const JARTIC_DIRECT = "https://api.jartic-open-traffic.org/geoserver";
async function fetchJarticDirect() {
const filter = encodeURIComponent(
`道路種別=${roadType} AND 時間コード=${timeCode} AND BBOX(ジオメトリ,${minX},${minY},${maxX},${maxY},'EPSG:4326')`
);
const url = `${JARTIC_DIRECT}?service=WFS&version=2.0.0&request=GetFeature&typeNames=t_travospublic_measure_5m&srsName=EPSG:4326&outputFormat=application/json&cql_filter=${filter}`;
return fetch(url).then(r => r.json());
}
JARTIC APIはWFS(Web Feature Service)形式をサポートしており、CQL_FILTERで東京都的范围を限定してクエリします。ブラウザからは直接Fetch可能(API側がCORSを許可)。
マップ描画
const map = new maplibregl.Map({
container: "map",
style: "https://tiles.openfreemap.org/styles/bright",
center: [139.767, 35.681],
zoom: 10.3,
pitch: 42,
bearing: -18,
});
map.addLayer({
id: "traffic-points",
type: "circle",
source: "traffic",
paint: {
"circle-radius": ["interpolate", ["linear"], ["get", "volume"], 20, 5, 320, 16],
"circle-color": ["get", "color"],
"circle-stroke-color": "#ffffff",
"circle-stroke-width": 1.5,
},
});
交通量に応じて円のサイズと色を動的に变换。MapLibreの式(interpolate)により、数据の範囲に応じて滑らかにサイズが変化します。
AI×オープンデータの可能性
このデモの本质は、AI辅助下で公共APIを自動呼び出し、結果を可視化することです。AIを活用하면:
- **API探索の自動化** — AIがエンドポイントを自律的に発見・テスト
- **データ変換** — 異种APIのレスポンスを统一形式に正規化
- **動的可視化** — 取得データに応じてUIをリアルタイム更新
- **異常検出** — 交通量の急変をAIが自动検出・アラート
JARTIC API不仅可以获取交通量数据,还可以获取:
- 拥堵信息(リアルタイム)
- 道路事件(事故・工事・天气影响)
- Parking guidance data
これらを組み合わせれば、AI驱动型の交通ナビゲーションシステムが構築可能です。
設置方法(自分のサーバーで動かす場合)
# リポジトリを克隆 git clonecd traffic-demo # 依存関係をインストール(Node.js 18+が必要) npm install # サーバーを起動 PORT=8001 HOST=0.0.0.0 node server.mjs # ブラウザでアクセス # http://your-server:8001
プロキシサーバー(server.mjs)は、サーバールーム内有りからJARTIC APIへアクセスする場合やブラウザCORS制限がある場合にのみ必要です。ブラウザが直接APIを呼び出せる环境であれば、静态ファイルだけで動作します。
まとめ
AIと公共オープンデータを組み合わせれば、有料の情報サービスに頼らずともリアルタイムの交通情報ダッシュボードを構築できます。JARTICの他、气象厅の気象データ、国土交通省の河川カメラなど、日本のオープンデータは丰富です。AIに「可視化したいデータを教えて」といえば、APIを探して取得して表示する——そんな未来がすでに実現可能です。
> 関連リンク
> – JARTIC 道路交通情報オープンデータ:https://api.jartic-open-traffic.org/
> – MapLibre GL JS ドキュメント:https://maplibre.org/
> – OpenFreeMap(免费地图砖块):https://openfreemap.org/
