Pythonのgeocodeモジュールを使って郵便番号から住所や緯度経度を取得する方法

スポンサーリンク

今回は、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

ご覧のように、照会された国と郵便番号の入力について多くのデータを受け取りました。

2. 2つの郵便番号間の距離

geocode モジュールが提供するもうひとつのクールな機能は、2 つの郵便番号間の地理的距離を求める機能です。

Geodistance() メソッドを使って同じことをすることができます

まず、問題の国名でメソッドを初期化し、2つの郵便番号の間の距離を求めます。

import pgeocode
data = pgeocode.GeoDistance('fr')
print(data.query_postal_code("75013", "69006"))

結果は以下の通りです。

391.1242610965041

まとめ

多くのプログラムでは、地理的な位置や郵便番号を扱う必要がありますが、ジオコードライブラリを使えば、そのような複雑なデータも非常に簡単に扱えるようになり、他の方法では膨大なデータセットが必要になります。

このトピックを楽しんで学んでいただけたら幸いです。

地理的な位置情報を扱う他のモジュールとして、geopyモジュールを取り上げました。

参考文献 公式ドキュメント

タイトルとURLをコピーしました