騙された!タクシー配車アプリのエンジニアにとって地図を見ることは大切と気付かされたこと
この記事はMobility Technologies Advent Calendar 2020の10日目です。
皆様はじめまして、y.matsushimaと申します。
株式会社Mobility Technologiesでタクシー配車アプリの注文受付アプリを開発しています。
注文受付アプリとは、タクシー車内に設置し乗務員様にご利用頂いているアプリで、タクシー配車アプリGOで頂いたご注文を、受け付ける側のアプリになります。
今回は、この注文受付アプリを作っていた際に起こった、ある出来事をお話しします。
恐怖のバグ報告
それはとある日の昼下がり、カスタマーサポートの方から下記の問い合わせが来ていると連絡が入りました。
「自身のタクシーが所属する営業区域とは、異なる営業区域からの注文が入ってきた」
これはやばい、とても重大なバグである。早速調べてみなければ。
タクシー豆知識 営業区域とは?
タクシーには、営業して良い区域が法令で定められています。
お客様を乗せる際は、乗車地 / 降車地共に自身が所属する営業区域内でなければならず、これを破ることは法令違反となります。そのため、重大なバグとなります。
調査開始!
何処で発生したのか詳しく伺うと、「営業区域は大阪市市域交通圏なのに、大阪府松原市内(河南交通圏に該当するエリア)で注文が入った」とのこと。
タクシー豆知識 大阪市域交通圏と河南交通圏
大阪府大阪市は、大阪市市域交通圏と呼ばれる営業区域に属しています。
一方で、大阪府松原市は河南交通圏と呼ばれる営業区域に属しており、異なる営業区域となっています。
大阪市と松原市の市境はほぼ川沿いにあるのに、確かに松原市となる川の南側で注文が入っている。
確かにおかしい。でも今まで同様のバグが起こったことはない。一体何が起こっているんだろう?
驚きの事実
実はこれ、バグではなかったんです。
その答えは、ソースコードではなく地図の中にありました。
地図を拡大すると・・・。
なんと、川の南側にある一本の道だけ大阪市だったのです!
この一本道の上だけは大阪市内なので、大阪市域交通圏のタクシーに注文が届いても問題ないのです。
ちなみにGoogle Mapでこの場所の住所を調べると、実在しない住所が出てきます。(松原市内に東住吉区は存在しない)
なぜいびつな市境になっているのか?
バグではなかったことがわかり、一安心。
でも、なぜ道一本だけ大阪市なんて、いびつな市境になっているのか。これにもしっかりと理由がありました。
[理由その①]一本道は神社の参道だった
川のすぐ南側に神社があるのですが、不思議な一本の道の正体は、この神社の参道だったのです。
ちなみに、下の写真はこの参道に当たる場所のものなのですが、現在は参道の面影はなくなっており、市境としてだけ昔の参道が残っています。
しかし、この道が特別なものであるのはわかりますが、松原市ではなく大阪市に属している理由としてはいまいち腑に落ちません。その答えは、理由その②にありました。
[理由その②] 川が、神社の南から北へ移動していた
神社の北を流れる大和川ですが、かつては神社の南側を流れていました。
しかし、江戸時代に行われた付け替え工事により、川が現在の場所である神社の北側に移動されたのです。
この時の名残で、参道を含めた神社の敷地は川の北側である大阪市に属することになったのです。
最後に
今回、この原因に気づけたのには大きな理由があります。
それは、実はたまたま今回の場所が私の地元で、小学校の歴史の授業で不思議な一本道について習っていたからです。(小学校の先生ありがとうございます!)
しかし、このたまたまが無ければ、ソースコードやログを調べ続け、もっと多くの時間がかかってしまっていたと思います。
ソースコードやログを見ることも大事だが、それと同じように地図やリアルに利用されている場所について知ることも大事だということを改めて学びました。