Webツール置き場阪神バス神戸西宮線の接近情報のリンク集を作った。

阪神バスに乗るときに時刻表代わりに接近情報を見ることが多いのだが、この接近情報は開くのに非常に手間がかかる難点があり、パッと開ける仕組みが欲しかった。

ブックマークできることからURLが存在することは知っていたので全部網羅したリンク集を作っておけば困ることが減るのでは?と思い、作ることにした。

URLフォーマットの解析

しかしURLのフォーマットが難儀でやや苦労した。フォーマットは以下のような感じだ。可読性のためURL Encodeは外してあるが、実際にはURL Encodeされている。

https://rosen.hanshin-bus.co.jp/busstatedtl?mode=4&fr=<バス停名>&frsk=B&tosk=&dt=<yyyymmdd0000>&dgm=<バス停名>:&dgmpl=<バス停名>:<上下コード>:1&p=0,8,9&IncludeHankyu=0&pole_station_code=<バス停コード>

各パラメーターの役割について、値とパラメーター名から幾らか推定はできたが、幾らか消したり足したりしながら試行錯誤していても、正直よくわからない部分が多かった。

例えばfrdgmはなくても動くっぽいので最悪削ってもいいのだが、dgmplが曲者で、ここに正規のバス停名が入ってないとサーバーから応答が来なくなる。またfrdgmhogeにして、dmgpl=hoge:2:1みたいにするとバス停検索画面に遷移し機能しなくなった。また、dtは数年前の日付をしても動くので恐らく機能には深く関わってなさそうだった。

恐らくこういった挙動からして、裏側でバス停名による検索を走らせてるのではないか?と考えたり、まぁ色々ありそうな気もしたのだが、面倒なのでパラメーターは全部残すことにした。

バス停の特定なんか、pole_station_code=<バス停コード>で全部やればいいじゃんとも思うのだが、恐らく歴史的経緯で複数のサブシステムが関連しており、上手く整合が取れていないのだろう。

正規バス停名の取得

しかし、こうなると正規のバス停名を取得するのが手間だった。何せ文字列で一気に取れる一覧がないのだ。悩みつつ何かないか探しているとバス停コードからバス停名を取得できる便利なAPIを見つけたので、これを使うことにした。

次のようなスクリプトを書くとバス停名が取れたため、適当にバス停コードに1~500辺りを設定し流してみると上手いこと行った。

curl 'https://rosen.hanshin-bus.co.jp/listrosenzucode' -H 'user-agent: hoge-bot' --data-raw 'qry=<バス停コード>'  | perl -ne '/"name": "(.+?)"/; print "$1"'

HTMLの生成とリンク集の作成

ここまでくれば後は簡単だ。この結果からリンク集を作るためのHTMLを生成すればいい。そして出来たのが記事先頭で紹介した阪神バス神戸西宮線の接近情報のリンク集だ。これでどのバス停にいるときでも瞬時に接近情報を開くことができるようになった。

ろくにCSSを書いていないので見た目が簡素だが、気が向いたら調整しようとは思う。

あとがき

バス停コードからバス停名を取得するためのhttps://rosen.hanshin-bus.co.jp/listrosenzucodeというAPIを見たとき、これを呼んでいるのがJavaScriptだったので、JSにハードコードしておくか、マッピングを書いたJSONなりXMLを転がしておけば一々APIを作らずともよく、サーバーのCPU時間や帯域も使わずに済むので良くないか?とか思ったが、きっと色々あるのだろうと思い、深く気にしないことにした。

更新日:
投稿日:

2024-02-09現在の三宮駅から岡山駅に行く方法の比較

比較表

経路などの詳細は次項以降で解説する。

下記の所要時間は目安であり、乗り継ぎの接続や、道路事情などによって前後する。

方法 所要時間 片道運賃 乗り換え回数 備考
新幹線(自由席) 57分 5,380円 1
JR在来線 2時間16分 2,640円 1~2
高速バス(片道券) 2時間35分 2,900円 0
高速バス(往復券) 同上 1,950円 同上
JR私鉄併用 2時間49分 2,510円 1~2
JR私鉄併用(1dayチケット往復) 同上 2,320円 同上 私鉄区間は三宮・姫路1dayチケットを利用する
フェリーJR併用 5~6時間 3,850円 1 フェリー区間は平日の最安料金で算出

新幹線

一番早いが高い。

経路

  1. 三宮駅からバスか地下鉄で新神戸駅へ
  2. 新神戸駅から新幹線で岡山駅へ
  3. 岡山駅に到着

JR在来線

乗り換えはあるが安く、本数があるため時間の融通も効きやすい。

経路

ここでは最速のルートを掲載しているが、他にも山陽線相生乗り換え、赤穂線播州赤穂乗り換えなど複数のパターンがあるが、どのルートでも遅くなるだけで運賃は変わらない。

  1. 三ノ宮駅からJR神戸線新快速で姫路駅へ
  2. 姫路駅から山陽本線普通で岡山駅へ
  3. 岡山駅に到着

高速バス

乗り換えがなく往復チケットを使えば最安になるのが利点だが、一日一往復しかなく、それも土日祝のみで時間の融通が利かない欠点がある。日帰り旅行には向かない。

参考までに運行ダイアは神戸→岡山は8:30発11:05着、岡山→神戸は17:00発19:45着。

またバスなので定時性が微妙、特に高速道路が詰まる時期は大きな遅延が出やすい。

経路

  1. 神姫バス神戸三宮バスターミナルから岡山行きの高速バスに乗車
  2. 岡山駅西口に到着

JR私鉄併用

三宮・姫路1dayチケットを利用する事で純粋なJRより安くなる経路経路。本数があるため時間の融通も効きやすい。

このチケットを買わない場合、JRとの運賃が少なくなり、時間が掛かる割に合わなくなるので、このルートを選ぶ場合はチケットを買っておきたいところだ。

但しJR神戸線が頻繁に止まったり、遅延することを考えた場合、この経路は比較的安定しているため、時間面での利点がないわけではない。

経路

ここでは最速のルートを掲載しているが、他にも山陽線相生乗り換え、赤穂線播州赤穂乗り換えなど複数のパターンがある。どのルートでも遅くなるだけで運賃は変わらない。

姫路駅以降の経路については山陽線相生乗り換え、赤穂線播州赤穂乗り換えなど複数のパターンがあるが、どのルートでも遅くなるだけで運賃は変わらない。

  1. 阪神神戸三宮駅から直通特急で山陽姫路駅へ
  2. 山陽姫路駅からJR姫路駅まで歩く
  3. JR姫路駅から山陽本線普通で岡山駅へ
  4. 岡山駅に到着

船舶JR併用

一見すると時間がかかるが、夜間便を使うことで寝ながら行くことができるので考え様によっては新幹線の次に早くなる経路。高松駅から岡山駅までは50分程度なので、高松港からの移動と鉄道との接続時間を足しても一時間半程度で行けるだろう。

なお乗船時間は四時間程度なので、余り休めないことに注意しておこう。その代わり朝イチに岡山に入れるメリットがある。寝坊して新幹線に乗り遅れみたいなことが物理的に起きないことを考えると最強だろう。

他にも船旅を楽しめるという他の経路にはない絶大なメリットがある。楽しんでいると寝る暇はないが。

経路

  1. 三宮バスターミナルから神戸フェリーバスで神戸三宮フェリーターミナルへ
  2. 神戸三宮フェリーターミナルからジャンボフェリーで高松港へ
  3. 高松港から無料送迎バスで高松駅へ
  4. 高松駅から瀬戸大橋マリンライナーで岡山駅へ
  5. 岡山駅に到着
更新日:
投稿日:

特急はまかぜ大阪行きは姫路駅で長時間停車を行うことがありますが、播但線ホームに停車するため停車したホームには売店がありません。しかし隣のホームには売店が見えます。

買いに行けそうな距離に売店が見えるが買いに行けない…

何とかして買いたいですが、播但線から出るには中間改札を抜ける必要があります。しかし中間改札を抜けると切符を取られて戻ってこられなくなりそうです。中間改札を出入りして売店を利用することはできないのかと思ったのですが、流石に事故ると怖いし、実験するのも大変なのでJR西日本に聞いてみました。

結論としては停車中に中間改札を往来することは可能ですが、ICカードで自動改札を利用するとエラーになるので駅係員に切符ないしICカードを提示して通行すれば問題ないとのことでした。

勿論、改札通過時に駅員が別に対応をしているなどではまかぜの乗車に間に合わなかった場合は自己責任になるので、ほぼ賭けです。ぶっちゃけほとんどやる意味はないと思います。ただ香澄駅からはまかぜ6号に乗ると駅弁がないんですね。折角の特急なので食べたいじゃないですか。そもそもあの時間に駅弁売ってるかや、在来線ホームでいまだに販売があるのかが謎ですが…w