Pagc_Normalize_Address — Givet en textuell gatuadress, returnerar en sammansatt norm_addy-typ
som har vägsuffix, prefix och typ standardiserad, gata, gatunamn etc. uppdelat i separata fält. Denna funktion fungerar bara med uppslagsdata som paketerats med tiger_geocoder (inget behov av tiger census data). Kräver tillägget address_standardizer.
norm_addy pagc_normalize_address(
varchar in_address)
;
Givet en textuell gatuadress returneras en sammansatt norm_addy-typ
som har vägsuffix, prefix och typ standardiserad, gata, gatunamn etc. uppdelat i separata fält. Detta är det första steget i geokodningsprocessen för att få alla adresser i normaliserad postform. Inga andra data krävs förutom de som medföljer geokodaren.
Den här funktionen använder bara de olika pagc_*-uppslagstabellerna som är förinstallerade med tiger_geocoder och som finns i tiger-schemat
, så du behöver inte ladda ner folkräkningsdata för tiger eller några andra ytterligare data för att använda den. Det kan hända att du behöver lägga till fler förkortningar eller alternativa namn i de olika uppslagstabellerna i tiger-schemat
.
Den använder olika kontrolluppslagstabeller som finns i tigerschemat
för att normalisera inmatningsadressen.
Fält i objektet av typen norm_addy
som returneras av denna funktion i denna ordning där () anger ett fält som krävs av geokodaren, [] anger ett valfritt fält:
Det finns små variationer i hölje och formatering på Normalize_Address.
Tillgänglighet: 2.1.0
Denna metod behöver address_standardizer-tillägg.
(address) [predirAbbrev] (streetName) [streetTypeAbbrev] [postdirAbbrev] [internal] [location] [stateAbbrev] [zip]
Den inbyggda standardaddr i address_standardizer-tillägget är för närvarande lite rikare än norm_addy eftersom den är utformad för att stödja internationella adresser (inklusive land). standardaddr motsvarande fält är:
house_num,predir, namn, suftype, sufdir, enhet, stad, delstat, postnummer
Förbättrad: 2.4.0 norm_addy-objektet innehåller ytterligare fält zip4 och address_alphanumeric.
adressen
är ett heltal: Gatunumret
predirAbbrev
är varchar: Riktningsprefix för vägen, t.ex. N, S, E, W osv. Dessa styrs med hjälp av tabellen direction_lookup
.
gatunamn
varchar
streetTypeAbbrev
varchar förkortad version av gatutyp: t.ex. St, Ave, Cir. Dessa kontrolleras med hjälp av tabellen street_type_lookup
.
postdirAbbrev
varchar förkortad riktning som räcker för väg N, S, E, W etc. Dessa styrs med hjälp av tabellen direction_lookup
.
internal
varchar intern adress, t.ex. lägenhetsnummer eller svitnummer.
location
varchar vanligtvis en stad eller en provins.
stateAbbrev
varchar två tecken amerikansk delstat, t.ex. MA, NY, MI. Dessa styrs av tabellen state_lookup
.
zip
varchar 5-siffrigt postnummer. t.ex. 02109.
parsed
boolean - anger om adressen bildades genom normaliseringsprocessen. Funktionen normalize_address sätter detta till true innan adressen returneras.
zip4
sista 4 siffrorna i ett 9-siffrigt postnummer. Tillgänglighet: PostGIS 2.4.0.
address_alphanumeric
Fullständigt gatunummer även om det har alfatecken som 17R. Det är bättre att analysera detta med hjälp av funktionen Pagc_Normalize_Address. Tillgänglighet: PostGIS 2.4.0.
Exempel på enstaka samtal
SELECT addy.* FROM pagc_normalize_address('9000 E ROO ST STE 999, Springfield, CO') AS addy; address | predirabbrev | streetname | streettypeabbrev | postdirabbrev | internal | location | stateabbrev | zip | parsed ---------+--------------+------------+------------------+---------------+-----------+-------------+-------------+-----+-------- 9000 | E | ROO | ST | | SUITE 999 | SPRINGFIELD | CO | | t
Batch-anrop. Det finns för närvarande hastighetsproblem med det sätt som postgis_tiger_geocoder omsluter address_standardizer. Dessa kommer förhoppningsvis att lösas i senare utgåvor. För att kringgå dem, om du behöver hastighet för batchgeokodning för att ringa generera en normaddy i batchläge, uppmuntras du att direkt anropa funktionen address_standardizer standardize_address enligt nedan, vilket är en liknande övning som vi gjorde i Normalize_Address som använder data som skapats i Geocode.
WITH g AS (SELECT address, ROW((sa).house_num, (sa).predir, (sa).name , (sa).suftype, (sa).sufdir, (sa).unit , (sa).city, (sa).state, (sa).postcode, true)::norm_addy As na FROM (SELECT address, standardize_address('tiger.pagc_lex' , 'tiger.pagc_gaz' , 'tiger.pagc_rules', address) As sa FROM addresses_to_geocode) As g) SELECT address As orig, (g.na).streetname, (g.na).streettypeabbrev FROM g; orig | streetname | streettypeabbrev -----------------------------------------------------+---------------+------------------ 529 Main Street, Boston MA, 02129 | MAIN | ST 77 Massachusetts Avenue, Cambridge, MA 02139 | MASSACHUSETTS | AVE 25 Wizard of Oz, Walaford, KS 99912323 | WIZARD OF | 26 Capen Street, Medford, MA | CAPEN | ST 124 Mount Auburn St, Cambridge, Massachusetts 02138 | MOUNT AUBURN | ST 950 Main Street, Worcester, MA 01610 | MAIN | ST