Name

standardize_address — 어휘 목록, 지명 색인, 규칙 테이블을 활용해서 입력 주소의 stdaddr 형식을 반환합니다.

Synopsis

stdaddr standardize_address(text lextab, text gaztab, text rultab, text address);

stdaddr standardize_address(text lextab, text gaztab, text rultab, text micro, text macro);

설명

lex table, gaz table, rules table 테이블명 및 주소를 활용해서 입력 주소의 stdaddr 형식을 반환합니다.

변종 1: 주소를 단일 행으로 입력받습니다.

변종 2: 주소를 두 부분으로 입력받습니다. house_num street 같은 우편 주소의 표준 첫 번째 행으로 이루어진 micro 절과, city, state postal_code country 같은 우편 주소의 표준 두 번째 행으로 이루어진 macro 절입니다.

2.2.0 버전부터 사용할 수 있습니다.

This method needs address_standardizer extension.

예시

address_standardizer_data_us 확장 프로그램 이용

CREATE EXTENSION address_standardizer_data_us; -- only needs to be done once

변종 1: 단일 행 주소를 입력 받습니다. 미국 주소가 아닌 경우 제대로 동작하지 않습니다.

SELECT house_num, name, suftype, city, country, state, unit  FROM standardize_address('us_lex',
                           'us_gaz', 'us_rules', 'One Devonshire Place, PH 301, Boston, MA 02109');
house_num |    name    | suftype |  city  | country |     state     |      unit
----------+------------+---------+--------+---------+---------------+-----------------
1         | DEVONSHIRE | PLACE   | BOSTON | USA     | MASSACHUSETTS | # PENTHOUSE 301

TIGER 지오코딩 도구로 패키징된 테이블을 이용 (이 예시는 사용자가 postgis_tiger_geocoder 를 설치했을 경우에만 동작합니다.)

SELECT *  FROM standardize_address('tiger.pagc_lex',
         'tiger.pagc_gaz', 'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA 02109-1234');

더 알아보기 쉽게 하기 위해 hstore 확장 프로그램을 이용해서 출력물을 덤프할 것입니다. 사용자가 CREATE EXTENSION hstore; 명령으로 설치해야 합니다.

SELECT (each(hstore(p))).*
 FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz',
   'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA 02109') As p;
key     |      value
------------+-----------------
 box        |
 city       | BOSTON
 name       | DEVONSHIRE
 qual       |
 unit       | # PENTHOUSE 301
 extra      |
 state      | MA
 predir     |
 sufdir     |
 country    | USA
 pretype    |
 suftype    | PL
 building   |
 postcode   | 02109
 house_num  | 1
 ruralroute |
(16 rows)
                        

변종 2: 주소를 두 부분으로 입력받습니다.

SELECT (each(hstore(p))).*
 FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz',
   'tiger.pagc_rules', 'One Devonshire Place, PH 301', 'Boston, MA 02109, US') As p;
key     |      value
------------+-----------------
 box        |
 city       | BOSTON
 name       | DEVONSHIRE
 qual       |
 unit       | # PENTHOUSE 301
 extra      |
 state      | MA
 predir     |
 sufdir     |
 country    | USA
 pretype    |
 suftype    | PL
 building   |
 postcode   | 02109
 house_num  | 1
 ruralroute |
(16 rows)

참고

stdaddr, rules table, lex table, gaz table, Pagc_Normalize_Address