Name

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.

Synopsis

norm_addy pagc_normalize_address(varchar in_address);

Beskrivning

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.

  1. adressen är ett heltal: Gatunumret

  2. predirAbbrev är varchar: Riktningsprefix för vägen, t.ex. N, S, E, W osv. Dessa styrs med hjälp av tabellen direction_lookup.

  3. gatunamn varchar

  4. streetTypeAbbrev varchar förkortad version av gatutyp: t.ex. St, Ave, Cir. Dessa kontrolleras med hjälp av tabellen street_type_lookup.

  5. 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.

  6. internal varchar intern adress, t.ex. lägenhetsnummer eller svitnummer.

  7. location varchar vanligtvis en stad eller en provins.

  8. stateAbbrev varchar två tecken amerikansk delstat, t.ex. MA, NY, MI. Dessa styrs av tabellen state_lookup.

  9. zip varchar 5-siffrigt postnummer. t.ex. 02109.

  10. parsed boolean - anger om adressen bildades genom normaliseringsprocessen. Funktionen normalize_address sätter detta till true innan adressen returneras.

  11. zip4 sista 4 siffrorna i ett 9-siffrigt postnummer. Tillgänglighet: PostGIS 2.4.0.

  12. 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

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