우편번호 데이터는 전 세계 여러 정부로부터 무료로 제공됩니다. 그러나 평판이 좋든 아니든 많은 조직에서는 이에 대한 비용을 청구하고 싶어합니다.
이 프로젝트는 미국 및 전 세계 우편번호 데이터를 검색하고 대조하기 위한 자동화된 솔루션입니다.
2011년에 우리는 원래 찾을 수 있는 모든 미국 인구 조사 데이터를 가져와서 분석한 후 3개의 .csv 파일로 내보냈습니다. 나중에 우리는 이 프로세스를 자동화하기 위해 3개의 rake 작업을 작성했습니다.
2017년부터 우리는 Creative Commons에 따라 라이센스가 부여된 GeoNames 데이터를 사용하기 시작했습니다. 공유해 주신 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 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
채워집니다.
우편번호 데이터는 GeoNames에서 전달하는 Creative Commons Attribution 3.0 Unported License에 따라 라이센스가 부여됩니다.
자세한 기록과 정오표는 CHANGELOG를 참조하세요.