今回は、geocodeモジュールを使って、異なる郵便番号の逆引きを実行します。
コード全体はとても簡単なので、個々のパーツを手早く見ていきましょう。
geocode モジュールはどのように役立つか?
Python の geocode モジュールは地理的なデータを処理し、異なるデータのペアリングやマッチングを支援するために構築されています。
pgeocodeモジュールを使うと、郵便番号の情報を使って地域やエリアに関連する情報を取得し、表現することができます。
このように、このモジュールは私たちの目的のために使うことができます。
この記事では、以下のようにpgeocodeモジュールの機能のいくつかについて話します。
- 郵便番号による国/地域に関するデータ
- 郵便番号の違い
- 郵便番号から複数の地域データ
ジオコードエンタープライズアプリのAPIをご紹介します。
もしあなたがビジネスアプリケーションのための郵便番号住所検索APIを探しているなら、ZipCodeBaseを見ることをお勧めします。
彼らは200カ国以上の郵便番号データを提供しており、もしあなたのアプリケーションが世界中のユーザーを対象にしているのであれば、これは素晴らしいことです。
彼らは様々なAPIを持っており、郵便番号半径検索APIは半径内の郵便番号を検索するのに非常に便利です。
彼らのドキュメントは一流で、最も良い部分は、すぐにサービスを開始し、試すことができる無料プランです。
1. 郵便番号から地域データを取得する
入力として提供されるさまざまな郵便番号から地域データをフェッチすることを見てみましょう。
geocode モジュールを使って、国番号、州、名前などを簡単に取得することができます。
geocodeのシンタックス。
pgeocode.Nominatim(country) query_postal_code(postal code) |
Nominatim() メソッドは国名を問い合わせることができ、query_post_code() メソッドは郵便番号について働きます。
例えば、以下の様になります。
実際のコードでどのように動作するか、例を挙げてみましょう。
国番号 “US “とランダムな郵便番号を照会し、geocodeモジュールがどのようなデータを示すか見てみましょう。
import pgeocode
data = pgeocode.Nominatim( 'US' )
print (data.query_postal_code( "95014" ))
|
結果は以下の通りです。
postal_code 95014
country_code US place_name Cupertino state_name California state_code CA county_name Santa Clara county_code 85
community_name NaN community_code NaN latitude 37.318
longitude - 122.045
accuracy 4
Name: 0 , dtype: object
|
ご覧のように、照会された国と郵便番号の入力について多くのデータを受け取りました。
この記事もチェック:Pythonのqrcodeモジュールを使ってQRコードを自作する方法
2. 2つの郵便番号間の距離
geocode モジュールが提供するもうひとつのクールな機能は、2 つの郵便番号間の地理的距離を求める機能です。
Geodistance() メソッドを使って同じことをすることができます。
まず、問題の国名でメソッドを初期化し、2つの郵便番号の間の距離を求めます。
import pgeocode
data = pgeocode.GeoDistance( 'fr' )
print (data.query_postal_code( "75013" , "69006" ))
|
結果は以下の通りです。
391.1242610965041 |
まとめ
多くのプログラムでは、地理的な位置や郵便番号を扱う必要がありますが、ジオコードライブラリを使えば、そのような複雑なデータも非常に簡単に扱えるようになり、他の方法では膨大なデータセットが必要になります。
このトピックを楽しんで学んでいただけたら幸いです。
地理的な位置情報を扱う他のモジュールとして、geopyモジュールを取り上げました。
参考文献 公式ドキュメント
この記事もチェック:PythonのGeopyライブラリを使って住所のジオコードを取得する方法