交差点名をもとに京都で最強の通りを決定したい
- 「交差点で先に名前が来る方が勝ち」のみ
- 百万遍とか祇園とかは引き分けとしてカウントしない
- 交差点名は 信号 > Google Mapの表記 > 近くのバス停 で決める
勝敗のループが存在するが、強い通りに勝ってたら良い評価をしたいので、PageRankでつよさを計算する
ループの例:
- 七条堀川/堀川五条/五条大宮/大宮七条
- 三条御前/御前通四条/四条河原町/河原町三条
- Pythonで実装する
- 通り・交差点はsqliteで管理する
- テーブルはStreetsとIntersectionsの2種
- StreetはIDと通り名のフィールドを持つ
- IntersectionsはID、交差点名、強い通り、弱い通りのフィールドを持つ。「強い通り」「弱い通り」はStreetを参照する
- PageRankの計算はNetworkXライブラリを使う
- Streetをノード、Intersectionsを「弱い通り」→「強い通り」のエッジとして計算する
UIとしては適当なwebUIを作成する。機能は以下の通り。
- 計算したPage Rankによる京都の通りランキング
- 通り・交差点のCRUD画面
Dockerで起動する場合:
docker compose up --buildローカルのPythonで起動する場合:
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/flask --app src.app run