Data kode pos gratis dari berbagai pemerintah di seluruh dunia. Namun begitu banyak organisasi, baik yang bereputasi baik maupun tidak, ingin meminta bayaran untuk hal tersebut.
Proyek ini adalah solusi otomatis untuk mengambil dan menyusun data kode pos AS dan seluruh dunia.
Pada tahun 2011, kami awalnya mengambil semua data sensus AS yang dapat kami temukan, menguraikannya, dan mengekspornya ke dalam 3 file .csv. Kemudian, kami menulis 3 tugas rake untuk mengotomatiskan proses ini.
Pada tahun 2017 kami mulai menggunakan data GeoNames, yang dilisensikan di bawah Creative Commons. Kami berterima kasih kepada GeoNames karena telah berbagi, dan mendorong Anda untuk mengunjungi situs mereka dan mendukung pekerjaan mereka.
Pada tahun 2018 kami memfaktorkan ulang proyek tersebut dan menjadikannya permata Ruby dengan baris perintah yang dapat dieksekusi untuk mengotomatiskan proses ini.
free_zipcode_data
- yang mengotomatiskan proses pengunduhan dan memproses data kode pos dari GeoNames. Tidak semua negara diperhitungkan. Silakan periksa GeoNames untuk melihat daftar file zip negara yang didukung.Setiap kode pos dikorelasikan dengan perkiraan atau zip-centroid, koordinat lintang dan bujur. Jika memungkinkan, negara, kabupaten/provinsi, negara bagian dan komunitas juga berkorelasi.
Lihat file readme.txt GeoNames untuk informasi lebih lanjut.
Pertama, Anda perlu menginstal Ruby dan Rubygems. Meskipun ini bukan tugas yang sulit, hal ini berada di luar cakupan README ini. Mesin pencari pilihan Anda akan membantu menemukan cara melakukan hal ini. Setelah Anda selesai melakukannya:
$ gem install free_zipcode_data
Tentukan kode negara 2 huruf untuk negara yang ingin Anda gunakan di GeoNames, atau jangan tentukan negara untuk mendapatkan semua kode pos untuk semua negara yang tersedia...
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
Unduh dan proses semua kode pos AS :
$ free_zipcode_data --work-dir /tmp/work_dir --country US --generate-files
Unduh dan proses kode pos untuk semua negara yang tersedia :
$ free_zipcode_data --work-dir /tmp/work_dir --generate-files
Tugas menyapu berjenjang, dari bawah ke atas. Jadi jika Anda menjalankan rake data:populate_db
, maka secara otomatis akan memanggil rake data:build
jika file .csv tidak ada, yang akan memanggil rake data:download
jika file .zip tidak ada.
Eksekusi akan menghasilkan database SQLite3 di direktori yang ditentukan --work-dir
tetapi tidak akan menghasilkan file .csv
secara default. Tentukan --generate-files
jika Anda menginginkannya juga.
Secara default tabel akan diberi nama sebagai berikut. Untuk mengganti nama tabel, lihat opsi baris perintah di atas.
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 )
)
Baik lat
maupun lon
, geocode, diisi untuk setiap catatan kode pos.
Data kode pos dilisensikan di bawah Lisensi Creative Commons Attribution 3.0 Unported, yang diteruskan dari GeoNames.
Lihat CHANGELOG untuk sejarah dan kesalahan lebih lanjut.