ICカードこれひとつ「バスの系統」協力募集

ICカードとバス


交通系ICカードのシェアの過半数がSuicaですので、つまり本アプリのユーザーの過半数は関東在住であろうと予想されます。今回は話が長くなりました。SuicaやPASMO圏などの方には全く無関係の話となりますから、読み飛ばしていただいて構いません。

現行の交通系ICカードは約50種類


今日時点で、日本全国で約50種類の交通系ICカードが利用されており、うち45種類が読み取れます。ICカードこれひとつはその45種類全てに対応する、日本で(というか世界で)唯一のアプリと言うことになります。

バス対応という側面からみると、全国対応のカード(10カード)では関西のPiTaPa圏でのみバス停情報を履歴に書き込みますし(念のため、ICOCA圏は書き込みません。PiTaPa圏のみです)、そもそも読めないカードや沖縄のOKICAなど一部例外を除いては、地方のバスICカードの殆どは乗降または精算バス停の番号などを記録する機能を持っています。

10カードでも、PASMO、manaca、nimocaといった各地方のバス圏ではカード内にバス停番号を書きませんから、残念ながら国民の過半数は、技術的に可能なはずの恩恵を受けられずにいると言うことになるのでしょう。もったいないことです。

バス停の情報の表示機能


さて本題に戻りまして、カードの履歴情報からバス停番号が読み取れるとなると、バス停名を表示したくなります。そのシンプルな欲求を満たすためICカードこれひとつは全力を尽くしました。
結果、現在はバス停名データベース(以下バス停名DB)として4種類のDBをアプリ内にもち(基本DB、ナイスパス用DB、ICa用DB、Rapica/いわさき用DB)、基本的なDBとナイスパス用で計7万件弱、全部あわせると10万件近い量のバス停情報を保有するに至っております。ここまでのバス停情報を持ち対応するのも、ICカードのビューアーとしては本アプリが日本で(というか世界で)唯一のアプリと言うことになるのでしょう。

これだけの情報を集めるだけでもとてつもない努力があったわけですが、現在はこのバス停名DBに、名前だけでなく、読み、ローマ字、停車するバスの路線名や系統番号、住所とGPS座標情報といった様々な情報を格納できるよう拡張が続けられています。

こういった努力と経験の積み重ね、つまりノウハウが蓄積された現在、幾つかの問題に直面してきております。
今回は、このデータベースの改良と今後について書いてゆきます。


現アプリの動きについて


「ICカードこれひとつ」は、ICカードを読み取るアプリです。
ICカードから読み取った「バス停番号」から「バス停名称ほか各種情報」を得るデータベース構成となっていて、データベースから引き出した情報を画面に表示しております。
現在、バス停名だけでなく「バスの系統」情報も需要が高まっていて、報告からクレームまで多数が寄せられておりますが、系統情報はバス停名を格納するデータベースに、停留所の情報の一部として記録されています。

しかしこの方式では、ダイヤ改正のたびにバス停名データベースから系統を探し出して修正する必要があります。
需要への対応として系統情報もデータベースに追加してまいりましたが、バスの系統は変遷が激しく、この修正作業も情報が増えるほど大変になってきています。


解決の方法


「バスの系統」情報を充実させてゆくためには、方法は一つしかありません。そのバスの系統情報をまとめたデータベースを作ることです。

従来、

「バス停番号」→「バス停名DB」→画面表示

だったものを、

「バス停番号」→「バス停名DB」と「バス系統DB」→画面表示

とし、バスの系統情報をバス停名DBから分離することが、需要を満たす最良の解決方法となります。


今後の方針と現状


現在開発中の新アプリで機能を開発中で、その開発自体は順調です。
今のところ、履歴タブと改札タブで、「バス系統DB」に情報があった場合はそちらを表示(新方式)、さもなくば従来の「バス停名DB」の系統情報を表示(旧方式)、というような試験的な実装で開発を進めています。
特に履歴タブでは、乗車と降車の双方に合致する系統のみを抽出して表示することを目指しています(乗降双方を記録するカードのみ)。

詳細情報画面では、「バス系統DB」に情報があった場合はその停留所に停車する全系統の一覧化を実現させたいと思っており、タップすることでその系統の停留所一覧表の表示→バス停名タップでそのバス停の情報表示→また系統の停留所一覧表の表示も可能…という感じで動かせるような機構を想定しています。

新旧双方の方式の混在はできませんから、新方式をするならある程度の情報が必要になります。さもないと、バスターミナルのように多数の系統が集まる停留所では、乗った系統が表示されず乗っていない他の系統が表示されるという現象が生じるため、これは確実にアプリへのクレームに繋がる動作になります。ですから、プログラム自体は完成したとしても情報が集まるまでは有効化できないだろうと思っております。ただ、バスの「系統」に関する情報は今後は原則「バス系統DB」として記録し、「バス停名DB」からは徐々に情報を抜いてゆく方針でおります。
従って、機能が有効化されるまでは、徐々にバスの系統が表示されなくなりますが、いずれ機能を有効かできるほど情報が充実したときは、改めてバスの系統情報も表示することができるようになるでしょう。

データベースの分離に成功すれば、バスの系統が様変わりしてもバス停がそのままならバス停名DBに影響が及ばなくなります。
まずデータベースを作るコストは莫大ですが、ダイヤ改正での影響範囲の調査は最小限で済むようになるため、保守費用は軽減できるのではないかと見込んでいるところです。


情報の募集について


これまで「バスの系統」情報を充実させなかった理由は一つしかありません。簡潔に言ってしまえば、極めて俗な結論ですが、お金がないからです。
ICカードこれひとつは黒字化を目指してはおりますが、このアプリは基本的に個人向けアプリであり企業向けではないですから得られる収入も多くはなく、このため黒字化もなかなか難しいため、弊社の力だけでは要望全てにお応えすることが難しい状況です。

試験的にいくつかのバス系統情報を作ってみました。手作業ではやはり時間が掛かります。ある程度熟練して効率化したとしても、短い系統で1系統あたり10分程度、長い系統は更に時間が掛かると思われ、平均1系統あたり30分程度を見込んでおくものとします。
それだけの時間を要すると言うことは、それだけのお金が掛かると言うことになりますが、今のところその投資ができるだけの収益がアプリから得られていませんから、それを弊社だけの力で実現することは無理と判断致しました。

そこで、ICカードこれひとつで、バスの系統情報を充実して欲しいという方にお願いがあるのですが、この「バス系統DB」用のデータ作成を手伝って欲しいのです。

大赤字の現状で特に何か見返りを進呈することはできないため原則としてボランティアとなりますが、弊社指定の形式か、または機械的に弊社指定の形式に簡単に変換できる形式、のいずれかでデータを作成していただき、それを提供していただきたく思っています。
提供するために作成されたデータ自体は、もちろん自由に公開していただいて構いません。弊社は、その公開された情報を活用させていただく、という形でデータを使わせていただきます。

日本国の国内法では、事実であるデータ自体は著作権の対象にならないそうですが、データ作成の労力は深く認識するところですので、クリエイティブコモンズでいえば「CC-BY」相当のライセンスであれば、データを作成された方のお名前はアプリ内に表示をさせていただきたく思っております。


データ形式


現在は開発中で、データ形式も試作中につき、今後少しずつ変更される可能性があります。

方針
・データはタブ区切りファイル(TSVファイル)とする
・文字の符号化にはUTF-8を用い、ファイル先頭にBOMは含めない
・改行は原則としてCR+LF (Windowsスタイル)

DB構成方法は二種類、分離方式「系統情報DB+系統に属する停留所一覧DB」と混在方式「系統情報DB内に停留所情報も含む」
保守性を考えると、DB内には各種の番号だけでなく、日本語の名称を含んだ方がよい。となると、それは単なるメモではなく情報として活用する方が望ましいので、DBサイズ的には非効率になるが、保守性を優先して後者の混在方式を採用するものとする。

各項目の意味
※は検索用情報で、うち一部はKEYとなる。マークなしは原則として表示用

1 ※事業者番号
2 ※系統ID
3 ※連番 (1からスタートの10進数とする。系統の停留所数が10以上の場合は01、100以上の場合は001のように頭に0を付けて桁数を合わせる)
4 ※内部利用のフラグ (未使用では0としておく)
5 ※有効期限開始日 (YYYYMMDD、特に指定がないばあいはオール0とする)
6 ※有効期限終了日 (YYYYMMDD、特に指定がないばあいはオール9とする)
7 バス=B
8 事業者名 (日本語名と英名は|で区切って併記する)
9 営業所名 (日本語名と英名は|で区切って併記する)
10 コミバスなどの名称 (日本語名と英名は|で区切って併記する)
11 路線名 (日本語名と英名は|で区切って併記する)
12 系統のフラグ(急行・特急・臨時などの情報をおく)
13 系統番号(表示用)

14 系統の起点(表示用)
15 系統の終点(表示用)
16 系統の経由地(表示用)
17 ※リレーション用の停留所番号(バス停名DBのキー)
18 停留所のフラグ(自由乗降などを表わすフラグ類おきば)
19 停留所名1
20 停留所名2
21 停留所名3


停留所のフラグ(暫定仕様)
助 = 国・自治体・沿線住民による補助路線
免 = 免許維持路線
臨 = 臨時駅・停留所
自 = 自由乗降区間(CI-CA)
由 = 自由乗降区間(CI-CA以外)

☆13と14の間に「系統のニックネーム(表示用)」も必要かもしれないと考えています。

データサンプル


ここではタブコードを ‣ 記号で表わす

奈良交通の21系統を例とする。

項目2「系統ID」はDB内で事業者番号と組み合わせて一意になる必要がある。系統番号で一意化を目指すものとするが、奈良交通の場合は営業所が違うと同じ番号を用いる傾向にあるため、営業所番号と系統番号を組み合わせて用いることとする。
例えば北大和営業所(学園前)は運行系統図でmap31.pdfとあるため、31番を営業所番号とみなし、31-21とする。
なお、奈良交通は同じ営業所番号ですら系統番号は重複するので、その場合は更に起点と終点のイニシャルを付すなどして、一意になるよう命名する。
往路と帰路で経路が異なる場合は、どちらかをA、どちらかをBなどと命名し、それを付して用いることとする。

こうして暫定仕様
0E51‣31-21‣01‣0‣00000000‣99999999‣B‣奈良交通|Nara Kotsu‣北大和営業所(学園前)‣‣大和町線‣‣21‣学園前駅(南)‣学園大和町五丁目‣‣033B‣‣学園前駅(南)‣‣
0E51‣31-21‣02‣0‣00000000‣99999999‣B‣奈良交通|Nara Kotsu‣北大和営業所(学園前)‣‣大和町線‣‣21‣学園前駅(南)‣学園大和町五丁目‣‣0121‣‣学園南三丁目‣‣
0E51‣31-21‣03‣0‣00000000‣99999999‣B‣奈良交通|Nara Kotsu‣北大和営業所(学園前)‣‣大和町線‣‣21‣学園前駅(南)‣学園大和町五丁目‣‣0123‣‣学園大和町‣(奈良西警察署)‣
0E51‣31-21‣04‣0‣00000000‣99999999‣B‣奈良交通|Nara Kotsu‣北大和営業所(学園前)‣‣大和町線‣‣21‣学園前駅(南)‣学園大和町五丁目‣‣0139‣‣学園大和町二丁目‣‣
0E51‣31-21‣05‣0‣00000000‣99999999‣B‣奈良交通|Nara Kotsu‣北大和営業所(学園前)‣‣大和町線‣‣21‣学園前駅(南)‣学園大和町五丁目‣‣5F29‣自‣自由乗降指定地‣(大和町①)‣
0E51‣31-21‣06‣0‣00000000‣99999999‣B‣奈良交通|Nara Kotsu‣北大和営業所(学園前)‣‣大和町線‣‣21‣学園前駅(南)‣学園大和町五丁目‣‣013A‣‣学園大和町三丁目‣‣
0E51‣31-21‣07‣0‣00000000‣99999999‣B‣奈良交通|Nara Kotsu‣北大和営業所(学園前)‣‣大和町線‣‣21‣学園前駅(南)‣学園大和町五丁目‣‣5F2A‣自‣自由乗降指定地‣(大和町②)‣
0E51‣31-21‣08‣0‣00000000‣99999999‣B‣奈良交通|Nara Kotsu‣北大和営業所(学園前)‣‣大和町線‣‣21‣学園前駅(南)‣学園大和町五丁目‣‣013B‣‣学園大和町四丁目‣‣
0E51‣31-21‣09‣0‣00000000‣99999999‣B‣奈良交通|Nara Kotsu‣北大和営業所(学園前)‣‣大和町線‣‣21‣学園前駅(南)‣学園大和町五丁目‣‣5F2B‣自‣自由乗降指定地‣(大和町③)‣
0E51‣31-21‣10‣0‣00000000‣99999999‣B‣奈良交通|Nara Kotsu‣北大和営業所(学園前)‣‣大和町線‣‣21‣学園前駅(南)‣学園大和町五丁目‣‣013C‣‣学園大和町五丁目‣‣

これを手作業でどのように効率的に作るべきかは一つの課題となりそうです。

最後に


上記のような形式で、リレーション用の停留所番号(バス停名DBのキー)、つまりカード内に書き込まれる停留所番号の欄は空欄で構いませんから、系統のDB作りをボランティアで手伝って下さる方を募集しております。

将来的に、この系統情報の最新状況もWebで一覧表示できるようにする予定ではおりますが、いつ頃になるかは現時点では未知となっております。

皆様からのご協力をいただければ幸いです。

2019/05/09(木)13:54 |Comments(0) |Trackback(0)

地域振興 | ソフトウェア開発 | コンピュータ | [編集]

▲ページトップ

コメント

コメントの投稿

磁気式などの電子マネーを管理するアプリの開発 ホーム マストドンのすすめ 21世紀の必須ツール
トラックバック

この記事にトラックバックする(FC2ブログユーザー)
▲ページトップ

カレンダー

11 | 2019/12 | 01
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

プロフィール

miraicorp

Author:miraicorp
未来情報産業(株) 社長

主として「ICカードこれひとつ」や「文字、文字コード」処理、時々C++などについて記述しています。

twitterマストドン

管理用

検索フォーム

お知らせ

コメント等お気軽にどうぞ。

気に入ったら拍手して頂けると、今後の記事を書く際の参考や励みになります。

■お仕事を募集しております
ソフトウェア製造の仕事や、原稿執筆の仕事などを随時受け付けております。
お気軽にご相談下さい

■初めての方へ
こまごまと更新しているため、他にも関連する記事があるかもしれません。
「月別アーカイブ」「検索フォーム」「カテゴリ」などをお試し下さい。
トップページはこちら

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

広告枠

メール

メールはこちら

リンク

このブログをリンクに追加する

RSSリンクの表示

QRコード

QR