郵便番号データは、世界中のさまざまな政府から無料で提供されています。しかし、非常に多くの組織が、評判の良し悪しに関わらず、それにお金を請求したいと考えています。
このプロジェクトは、米国および世界の郵便番号データを取得して照合するための自動ソリューションです。
2011 年に、私たちは最初に、見つけられたすべての米国国勢調査データを取得し、解析して 3 つの .csv ファイルにエクスポートしました。その後、このプロセスを自動化するために 3 つの rake タスクを作成しました。
2017 年に、クリエイティブ コモンズに基づいてライセンス供与されている GeoNames データの使用を開始しました。共有してくれた GeoNames に感謝します。ぜひ彼らのサイトにアクセスして彼らの活動をサポートしてください。
2018 年に、私たちはプロジェクトをリファクタリングし、このプロセスを自動化するためのコマンドライン実行可能ファイルを備えた Ruby gem にしました。
free_zipcode_data
- GeoNames から郵便番号データをダウンロードして処理するプロセスを自動化します。すべての国が考慮されているわけではありません。サポートされている国の zip ファイルのリストを確認するには、GeoNames を確認してください。各郵便番号は、推定または郵便重心、緯度、経度の座標と関連付けられています。該当する場合、国、郡/県、州、およびコミュニティも関連付けられます。
詳細については、GeoNames readme.txt ファイルを参照してください。
まず、Ruby と Rubygems をインストールする必要があります。それは難しい作業ではありませんが、この README の範囲を超えています。選択した検索エンジンは、これを行う方法を見つけるのに役立ちます。それが完了したら、次のようにします。
$ gem install free_zipcode_data
GeoNames で使用する国の 2 文字の国コードを決定するか、国を指定しないで利用可能なすべての国のすべての郵便番号を取得します...
Options:
-w, --work-dir= < s > REQUIRED: Specify your work/build directory, where the SQLite and .csv files will be built
-f, --country= < s > Specify the country code for processing, or all countries if not specified
-g, --generate-files Generate CSV files: [counties.csv, states.csv, countries.csv, zipcodes.csv]
-o, --country-tablename= < s > Specify the name for the ` countries ` table (default: countries)
-s, --state-tablename= < s > Specify the name for the ` states ` table (default: states)
-u, --county-tablename= < s > Specify the name for the ` counties ` table (default: counties)
-z, --zipcode-tablename= < s > Specify the name for the ` zipcodes ` table (default: zipcodes)
-c, --clobber Overwrite existing files
-d, --dry-run Do not actually move or copy files
-v, --verbose Be verbose with output
-h, --help Show this message
米国のすべての郵便番号をダウンロードして処理します。
$ free_zipcode_data --work-dir /tmp/work_dir --country US --generate-files
利用可能なすべての国の郵便番号をダウンロードして処理します。
$ free_zipcode_data --work-dir /tmp/work_dir --generate-files
rake タスクは下から上にカスケードされます。したがって、 rake data:populate_db
を実行すると、.csv ファイルが見つからない場合はrake data:build
自動的に呼び出され、.zip ファイルが見つからない場合はrake data:download
が呼び出されます。
この実行可能ファイルは、指定されたディレクトリ--work-dir
に SQLite3 データベースを生成しますが、デフォルトでは.csv
ファイルは生成されません。それらも必要な場合は、 --generate-files
指定します。
デフォルトでは、テーブルには次のような名前が付けられます。テーブル名をオーバーライドするには、上記のコマンド ライン オプションを参照してください。
create table countries (
id integer not null primary key ,
alpha2 varchar ( 2 ) not null ,
alpha3 varchar ( 3 ),
iso varchar ( 3 ),
name varchar ( 255 ) not null
)
create table states (
id integer not null primary key ,
country_id integer not null ,
abbr varchar ( 2 ) not null ,
name varchar ( 255 )
)
create table counties (
id integer not null primary key ,
state_id integer ,
abbr varchar ( 255 ),
name varchar ( 255 ),
county_seat varchar ( 255 )
)
create table zipcodes (
id integer not null primary key ,
code varchar ( 10 ) not null ,
state_id integer ,
city varchar ( 255 ),
area_code varchar ( 3 ),
lat float,
lon float,
accuracy varchar ( 8 )
)
地理コードであるlat
とlon
両方が郵便番号レコードごとに入力されます。
郵便番号データは、Creative Commons Attribution 3.0 Unported License に基づいてライセンスされており、GeoNames から引き継がれています。
詳細な履歴と正誤表については、CHANGELOG を参照してください。