小学校受験 / 学校検索
小受アクセス
首都圏の私立と国立小学校を通学条件から探す静的サイト。公的な学校座標と公式情報をCSVに集め、学校ページ用のJSONへ変換する。駅と路線の静的データから主要駅別の乗換と概算時間を作り、学校ごとの通学時間制限と併せて判断材料にする。
公開サイトを見る (新しいタブ)
技術スタック
| 技術 | このサイトでの役割 |
|---|---|
| Astro | CSVから生成した学校JSONを読み込み、学校と駅の詳細ページを静的に作る。公開時の学校検索にサーバー処理を要せず、駅別の結果も組み込む。 |
| 国土数値情報 P29(学校) | 小学校の公的な位置情報を学校CSVの座標に使う。学校の位置を生成AIの推測に頼らず管理し、所在地との対応を保つ。 |
| 国土数値情報 N02(鉄道) | 駅と路線の対応を乗換分類の入力に使う。主要駅から学校のアクセス駅へ向かう路線グラフを組み、乗換候補を探す。 |
| Node.js | 学校CSVをサイトの型に合わせたJSONへ変換し、別のスクリプトで駅別の乗換結果を事前計算して静的ファイルに保存する。 |
処理の流れ
学校情報を変換する
公的座標と公式URLを含むCSVを読み、学校のアクセス条件などを持つJSONへ変換し、静的ページの入力にする。
駅からの経路を分類
N02の駅と路線から乗換候補を探索し、鉄道と駅からの移動を合わせた時間を概算する。
駅ページへ展開する
生成した駅別JSONを静的ページに読み込み、乗換回数や概算時間帯ごとに学校を示す。
実装の工夫
CSVを唯一の編集元にする
学校データはCSVから一括変換し、生成されたJSONを手で直さない構成にしている。学校の座標、公式URL、アクセス情報を同じ変換工程に通すため、静的ページへ渡す項目の形を揃えられる。更新時は入力CSVに修正を戻す。
鉄道と学校への移動を分ける
駅と路線の対応から主要駅と学校アクセス駅の乗換を求め、駅から学校までの移動時間を概算に加える。駅ページでは乗換0回、1回、2回を分類し、候補の比較に使える。学校までの所要時間は公式アクセスの記録を基に別項目として扱う。
距離と時間を区別する
住所を起点にした学校の並びはHaversineの直線距離で計算する。一方、駅からの表示は静的な鉄道ネットワークによる概算であり、別の指標として扱う。通学可能かどうかは学校の条件と実際の経路を確認して判断する。
構成と制約
- 駅別の時間は時刻表を使わない概算で、実際の通学時間や学校の通学許可を判定しない。学校が示す時間制限と利用可能な経路は別途確認が必要。
- 学校JSONはCSVからの生成物であり、内容の修正には入力CSVの更新が必要となる。
実装確認: