standardize_address — Gibt eine gegebene Adresse in der Form "stdaddr" zurück. Verwendet die Tabellen "lex", "gaz" und "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)
;
Gibt eine gegebene Adresse in der Form stdaddr zurück. Verwendet die Tabellennamen lex table, gaz table und rules table und eine Adresse.
Variante 1: Nimmt eine einzeilige Adresse entgegen.
Variante 2: Nimmt eine Adresse in 2 Teilen entgegen. Ein micro
Teil, der aus der normierten ersten Zeile einer Postadresse besteht; z.B. house_num street
. Ein "macro"-Teil, der aus der normierten zweiten Zeile einer Adresse besteht; z.B. city, state postal_code country
.
Verfügbarkeit: 2.2.0
Diese Methode benötigt die Erweiterung address_standardizer.
Verwendung der address_standardizer_data_us Erweiterung
CREATE EXTENSION address_standardizer_data_us; -- only needs to be done once
Variante 1: Einzeilige Adresse. Dies funktioniert nicht gut mit Adressen außerhalb der US
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
Verwendung der Tabellen, die mit dem Tiger Geokodierer paketiert sind. Dieses Beispiel funktioniert nur, wenn Sie postgis_tiger_geocoder
installiert haben.
SELECT * FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz', 'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA 02109-1234');
Die Ausgabe über einen Dump mit der Erweiterung "hstore" ist leichter lesbar. Die Erweiterung hstore muss mittels "CREATE EXTENSION hstore;" installiert sein.
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 aus zwei Teilen.
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