Google Maps API ジオコーディング、プレイス検索で返される住所で分かったこと
Google Maps API でジオコーディング、プレイス検索で返される住所(formatted_address)、約3,000件を見て気づいたこと、レアなケースなどをまとめてみました。
通常、日本であれば、XML形式のformatted_addressタグには、日本, 〒○○○-○○○○ △△県□□市 ××区○○町△丁目□ 番×号○と言う感じで返されます。しかし、統一感はまったくありませんでした。同じ系列の店を検索しても返される住所は、ばらばらです。
- 番地は全角、半角の割合はバラバラ、また△丁目□ 番×号○と△-□ -×が混在
- △△県□□市 ××字○○で検索し、住所が登録されていない場合には、△△県□□市で返される
- 住所の間にスペースがある
- 番地の最後が号、番で終わる場合には省略されていることが多い
- 郵便番号が入っていないケース
- 郵便番号のハイフンが半角のマイナスでなく、全角の長音(ー)記号のケース
- 同緯度、同経度で同じ系列別店舗のケース
(フロアごとに1号店、2号店となっていた。あり得るケースですが、単純に同緯度、同経度で削除するところでした)
正確に全部をカウントしたわけではありませんが、約3,000件のデータの内、5.は9件、6.は1件、7.は1件でした。
対策として、2.は、返されるtypeタグがlocality(自治体)かどうか判別し、ジオコーディングで見つからなかった住所を含め、プレイス検索で再検索。
typeタグの詳細は、公式サイトの「住所のタイプと住所コンポーネントのタイプ」を参照してください。
5.は、JavaScriptの正規表現で対応しました。6.も正規表現で対応予定ですが、JavaScriptの正規表現のマルチバイト対応が中途半端だから。。。
2016/5/19追記
最近、プレイス検索で以下のようなアドレスリターンが数件、あった。
8.〒○○○-○○○○, △△△△ ××町 □□市 △△県 ○○○-○○○○ 日本
日本の前の○も郵便番号。これは、西洋圏での住所の記述の仕方。Googleさんが何かやっているのかな。
2016/5/22追記
9.△△△△ ××町 □□市 △△県 ○○○-○○○○ 日本
10.〒○○○-○○○○, △△△△ ××町 □□市 △△県 日本
○○○-○○○○は、郵便番号。
今日もがじがじっと~♪