ケンオール開発チームです。
今回は、ケンオールグッズの紹介と、Swiftクライアントの紹介、そしてケンオールが取り扱う「郵便番号」とは何か、を紹介します。
前号はこちらです。
ケンオールグッズ
すでにTwitterなどでご存じの方もいらっしゃるとは思いますが、ケンオールグッズが完成しました!以下のサイトで購入できます。
このグッズはケンオールファンの皆様のために作ったものなので、実費のみをいただいて提供しております。弊社の利益は一切発生しません。(将来的に変更する可能性はあります)
エコシステムツール紹介
今回は、 @woxtuさんが開発した、Swiftクライアントを紹介します。 https://github.com/woxtu/swift-kenall
インストール方法と使い方がREADMEに簡潔に書かれていて、簡単に使えるようになっています。公式ドキュメントへのリンクも貼っています。
郵便番号データの処理が難しい理由
郵便番号データは、気軽にダウンロードして利用できるオープンデータで、プログラミング学習の練習などにもよく使われます。しかし、業務で活用しようと思うと、かなり複雑なデータであることに気づきます。なぜ、これほどまでに処理が難しいデータになっているのでしょうか。郵便番号の正体から紐解いてみましょう。
日本郵便様のサイトには、郵便番号導入の目的を以下のように記載しています。
郵便番号の導入は郵便物処理の機械化の範囲を拡大し、人力に依存する割合の極めて高い郵便事業の効率化を推進することによって、将来にわたってなるべく安い料金で良質な郵便サービスを安定的に御利用いただくことを目的とします。
この記述から、郵便番号はあくまで郵便事業、つまり、物品の配達を目的として導入された仕組みであることがわかります。 これだけを読むと当たり前のように聞こえるかもしれませんが、このことは、「郵便番号は住所を正確に記述することを目的とした仕組みではない」ことを意味しています。
そして、郵便番号のルールのページを見ると、以下のように記載されています。
郵便番号は、町域(特別区又は市町村区域内の町又は字の区域をいいます。ただし、原則として、町の名称に「丁目」を使用している場合は、○丁目を除く部分が同一の区域とし、大字と小字に分かれている場合は、大字の区域とします。)および超高層ビルに設定します。
小字又は通称には原則として、郵便番号は設定しません。ただし、当該小字又は通称が実質的に大字又は公称町名として扱われ、郵便物への記載が多い等必要な場合は、郵便番号を設定することがあります。
この記述から、以下のことがわかります。
1つ目のポイントは、郵便番号は、区域ごとに割り当てられた番号であるということです。これは、特にジオコーディング(住所を緯度経度に変換する処理)に郵便番号を活用するときは注意する必要があります。目的に合ったジオコーディングを行うには、郵便番号が示すエリアのうち、どこを代表点として取るかを慎重に検討する必要があります。
2つ目のポイントは、郵便番号と区域の対応は、住所記述の郵便物への記載量などによって決定されるということです。先述の郵便番号の目的に記載の通り、郵便番号はあくまで郵便業務の効率化のために導入された仕組みです。
ケンオールのように、郵便番号データをシステムとして用いる場合、ユーザが期待するのは「郵便番号を入力したら正しい住所が記載されてほしい」というものですが、以上のことから、本来の郵便番号は「郵便物を効率的に送り届ける」ことを目的としているものである、ということが分かります。
郵便局様に電話して住所の確認を行う作業を始めた頃、以下のような問答をよくしてしまいました。
「○○ですが、これは正しい住所でしょうか?」 「この住所でも届きますよ」
これは、郵便局様からすれば正しい回答で、我々の方が質問の仕方を間違っていたことに後から気づきました。
郵便番号データは、処理が難しいオープンデータとして有名なものの一つですが、それにはきちんとした理由があるのです。
ケンオールについて
ケンオールは、多くの開発者にとって悩みだった郵便番号住所検索機能をメンテナンス不要で簡単に使えるようにするためのAPIサービスです。
以下のリンクからサービスを利用することができます。
この記事はShodo (https://shodo.ink) で執筆されました。