standardize_address — Retorna uma forma stdaddr de um endereço de entrada utilizando lex, gaz e rule tables.
stdaddr standardize_address(
text lextab, text gaztab, text rultab, text address)
;
stdaddr standardize_address(
text lextab, text gaztab, text rultab, text micro, text macro)
;
Retorna a uma stdaddr forma de um endereço de entrada utilizando lex table table nome, gaz table, e rules table table nomes e endereço.
Variante 1: Pega um endereço como uma única linha.
Variante 2: Pega o endereço em duas partes. Uma micro
que consiste em padronizar a primeira linha do endereço postal ex. house_num street
, e uma macro que consiste em adronizar a segunda linha de um endereço postal ex. city, state postal_code country
.
Disponibilidade: 2.2.0
This method needs address_standardizer extension.
Using address_standardizer_data_us extension
CREATE EXTENSION address_standardizer_data_us; -- only needs to be done once
Variante 1: Única linha de endereço. Isso não funcionou bem com os endereços não-EUA
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
Utilizando tables compactadas com o geocoder tiger. Este exemplo só funciona se você instalou 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');
Para tornar a leitura mais fácil nós iremos abandonar a saída usando a extensão hstore CREATE EXTENSION hstore; você vai precisar instalar
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)
variante 2: Como um endereço de duas partes
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