standardize_address — Renvoie une forme stdaddr d'une adresse d'entrée en utilisant les tables lex, gaz et rule.
stdaddr standardize_address(
text lextab, text gaztab, text rultab, text address)
;
stdaddr standardize_address(
text lextab, text gaztab, text rultab, text micro, text macro)
;
Renvoie une forme stdaddr d'une adresse d'entrée utilisant des lex table noms de tables, gaz table, et rules table noms de tables et une adresse.
Variante 1 : prend une adresse sur une seule ligne.
Variante 2 : prend une adresse en deux parties. Une micro
constituée de la première ligne standard d'une adresse postale, par exemple house_num street
, et une macro constituée de la deuxième ligne postale standard d'une adresse, par exemple city, state postal_code country
.
Disponibilité : 2.2.0
Cette méthode nécessite l'extension address_standardizer.
Utilisation de l'extension address_standardizer_data_us
CREATE EXTENSION address_standardizer_data_us; -- only needs to be done once
Variante 1 : adresse sur une seule ligne. Cela ne fonctionne pas bien avec les adresses non américaines
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
Utilisation des tables fournies avec tiger geocoder. Cet exemple ne fonctionne que si vous avez installé 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');
Pour faciliter la lecture, nous utiliserons l'extension hstore CREATE EXTENSION hstore ; vous devez installer
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 : adresse en deux parties
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)