Name

Pagc_Normalize_Address — Étant donné une adresse textuelle, cette fonction renvoie un type composite norm_addy qui contient le suffixe de la route, le préfixe et le type normalisé, la rue, le nom de la rue, etc. divisés en champs distincts. Cette fonction fonctionne uniquement avec les données de recherche fournies avec le géocodeur tiger (pas besoin pour les données de recensement tiger). Nécessite l'extension address_standardizer.

Synopsis

norm_addy pagc_normalize_address(varchar in_address);

Description

Étant donné une adresse textuelle, cette fonction renvoie un type composite norm_addy qui contient le suffixe de la route, le préfixe et le type normalisé, la rue, le nom de la rue, etc. divisés en champs distincts. Il s'agit de la première étape du processus de géocodage visant à normaliser toutes les adresses sous forme postale. Aucune autre donnée n'est nécessaire en dehors de celles fournies avec le géocodeur.

Cette fonction utilise simplement les diverses tables de recherche pagc_* préchargées avec le géocodeur tiger et situées dans le schéma tiger, de sorte qu'il n'est pas nécessaire de télécharger les données de recensement tiger ou d'autres données supplémentaires pour l'utiliser. Il se peut que vous ayez besoin d'ajouter des abréviations ou des noms alternatifs aux différentes tables de recherche du schéma tiger.

Il utilise diverses tables de contrôle situées dans le schéma tiger pour normaliser l'adresse d'entrée.

Les champs de l'objet de type norm_addy renvoyés par cette fonction dans cet ordre où () indique un champ requis par le géocodeur, [] indique un champ optionnel :

Il existe de légères variations dans la casse et le formatage des Normalize_Address.

Disponibilité : 2.1.0

Cette méthode nécessite l'extension address_standardizer.

(address) [predirAbbrev] (streetName) [streetTypeAbbrev] [postdirAbbrev] [internal] [location] [stateAbbrev] [zip]

Le standardaddr natif de l'extension address_standardizer est pour l'instant un peu plus riche que norm_addy puisqu'il est conçu pour prendre en charge les adresses internationales (y compris le pays). Les champs équivalents au standardaddr sont :

house_num,predir, name, suftype, sufdir, unit, city, state, postcode

Amélioré : 2.4.0 L'objet norm_addy comprend des champs supplémentaires zip4 et address_alphanumeric.

  1. address est un nombre entier : Le numéro de la rue

  2. predirAbbrev est varchar : Préfixe directionnel de la route tel que N, S, E, W, etc. Ces préfixes sont contrôlés à l'aide de la table direction_lookup.

  3. streetName varchar

  4. streetTypeAbbrev varchar version abrégée du type de rue : par exemple St, Ave, Cir. Ceux-ci sont contrôlés à l'aide de la table street_type_lookup.

  5. postdirAbbrev varchar abrégé directionnel suffixe de la route N, S, E, W etc. Elles sont contrôlées à l'aide de la table direction_lookup.

  6. internal varchar adresse interne telle qu'un numéro d'appartement ou de suite.

  7. location varchar généralement une ville ou une province.

  8. stateAbbrev varchar deux caractères État américain, par exemple MA, NY, MI. Ceux-ci sont contrôlés par la table state_lookup.

  9. zip varchar Code postal à 5 chiffres, par exemple 02109.

  10. parsed booléen - indique si l'adresse a été formée à partir du processus de normalisation. La fonction normalize_address fixe cette valeur à true avant de renvoyer l'adresse.

  11. zip4 4 derniers chiffres d'un code postal à 9 chiffres. Disponibilité : PostGIS 2.4.0.

  12. address_alphanumeric Numéro de rue complet, même s'il contient des caractères alpha comme 17R. Il est préférable d'utiliser la fonction Pagc_Normalize_Address. Disponibilité : PostGIS 2.4.0.

Exemples

Exemple d'appel unique

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

Appel par lots. Il y a actuellement des problèmes de vitesse avec la façon dont postgis_tiger_geocoder mobilise l'address_standardizer. Ces problèmes seront résolus dans les prochaines éditions. Pour les contourner, si vous avez besoin de rapidité pour le géocodage par lots pour appeler la génération d'un normaddy en mode batch, nous vous encourageons à appeler directement la fonction address_standardizer standardize_address comme indiqué ci-dessous qui est un exercice similaire à ce que nous avons fait dans Normalize_Address qui utilise les données créées dans 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