名前

Pagc_Normalize_Address文字列のストリート住所を与えると、道路後置辞、前置辞、標準タイプ、番地、ストリート名等を複数フィールドに分解して持つnorm_addy複合型を返します。この関数は、tiger_geocoder同梱のルックアップテーブルだけを使います (Tigerデータは不要です)。住所標準化エクステンションが必要です。 — 文字列のストリート住所を与えると、道路後置辞、前置辞、標準タイプ、番地、ストリート名等を複数フィールドに分解して持つnorm_addy複合型を返します。この関数は、tiger_geocoder同梱のルックアップテーブルだけを使います (Tigerデータは不要です)。住所標準化エクステンションが必要です。

概要

norm_addy pagc_normalize_address(varchar in_address);

説明

文字列で住所が与えられると、道路後置辞、前置辞、正規化された種別、番地、ストリート名等をフィールドに分けて持つnorm_addy複合型を返します。全ての住所を正規化した郵便形式にするジオコーディング処理の第一段階です。ジオコーダに同梱されるもの以外で必要な者はありません。

この関数は、Tigerジオコーダとともにロードされ、tigerスキーマに置かれる、種々のpagc_+ルックアップテーブルだけを使うので、Tigerデータや他のデータをダウンロードする必要はありません。略語や別名をtigerスキーマのルックアップテーブルに追加しなければならない場合もあります。

tigerスキーマ内に、入力アドレスを正規化するための、多様な制御ルックアップテーブルを使います。

この関数が返すnorm_addy型オブジェクトのフィールドは、次に示す順序です。()はジオコーダの必須フィールド、[]は任意フィールドです。

処理と書式についてNormalize_Addressと若干の違いがあります。

Availability: 2.1.0

This method needs address_standardizer extension.

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

住所標準化エクステンションのstandardaddrは、他国の住所への対応 (countryも含む)があるため、norm_addyより若干フィールドが多くなります。standardaddrの、norm_addyと等価なフィールドは次の通りです。

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

Enhanced: 2.4.0 norm_addyオブジェクトにzip4とaddress_alphanumericが追加されました。

  1. address 整数: 番地

  2. predirAbbrev varchar型: N, S, E, W等といった道路の方向前置辞。direction_lookupテーブルに制御されます。

  3. streetName varchar型

  4. streetTypeAbbrev varchar型 ストリート種別の短縮名: St, Ave, Cir等。street_type_lookupテーブルに制御されます。

  5. postdirAbbrev varchar型 N, S, E, W等の道路名の方向後置辞。direction_lookupテーブルに制御されます。

  6. internal varchar型 部屋番号といった内部住所。

  7. location varchar型 通常は市名や県名です。

  8. stateAbbrev varchar型 MA, NY, MI等のような米国の州名の2文字表示です。state_lookupテーブルに制御されます。

  9. zip varchar型 02109等の5桁の数字です。

  10. parsed 真偽型 - 住所が正規化処理で整形されたかを示します。normalize_addressは、住所を返す前にこれをTRUEにします。

  11. zip4 9桁のZIPコードの最後4桁です。Availability: PostGIS 2.4.0.

  12. address_alphanumeric 17Rのように英字が入る場合の完全なストリート番号。これのパースにはPagc_Normalize_Address文字列のストリート住所を与えると、道路後置辞、前置辞、標準タイプ、番地、ストリート名等を複数フィールドに分解して持つnorm_addy複合型を返します。この関数は、tiger_geocoder同梱のルックアップテーブルだけを使います (Tigerデータは不要です)。住所標準化エクステンションが必要です。関数を使う方が良いです。Availability: PostGIS 2.4.0.

単一呼び出しの例を示します。

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

バッチ呼び出しの例です。現在は、postgis_tiger_geocoderはaddress_standardizerを使用しているため、速度の問題があります。うまくいけば、今後解決されることでしょう。 normaddyへのジオコーディングのバッチ処理で速度が必要な場合には、住所標準化エクステンションのstandaridze_address関数を直接呼ぶことで回避できます。Geocodeで生成されたデータを使うNormalize_Addressで行っていることと似ています。例を次に示します。

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

関連情報

Normalize_Address, Geocode