名稱

Pagc_Normalize_Address — 給定一個文字街道地址,傳回一個複合的 norm_addy 類型,其中包含標準化的道路後綴、前綴和類型,以及街道、街道名稱等,並將其分解為獨立的欄位。此函數僅需使用 tiger_geocoder 隨附的查詢資料即可運作(無需 tiger 人口普查資料)。需要 address_standardizer 擴充功能。

概要

norm_addy pagc_normalize_address(varchar in_address);

描述

給定一個文字街道地址,傳回一個複合的 norm_addy 類型,其中包含標準化的道路後綴、前綴和類型,以及街道、街道名稱等,並將其分解為獨立的欄位。這是地理編碼流程的第一步,旨在將所有地址轉換為標準化的郵政格式。除了 geocoder 隨附的資料外,不需要其他資料。

此函數僅使用預先載入到 tiger_geocoder 中,並位於 tiger 綱要中的各種 pagc_* 查詢表,因此您不需要下載 tiger 人口普查資料或任何其他額外資料即可使用它。您可能會發現需要在 tiger 綱要中的各種查詢表中新增更多縮寫或替代名稱。

它使用位於 tiger 綱要中的各種控制查詢表來標準化輸入地址。

此函數傳回的 norm_addy 類型物件中的欄位順序如下,其中 () 表示 geocoder 所需的欄位,[] 表示可選欄位

Normalize_Address 相比,大小寫和格式略有差異。

可用性:2.1.0

這個方法需要 address_standardizer 擴充功能。

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

目前,address_standardizer 擴充功能的原生 standardaddr 比 norm_addy 更豐富,因為它旨在支援國際地址(包括國家/地區)。standardaddr 的對應欄位為

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

增強功能: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。這些由 state_lookup 表格控制。

  9. zip varchar 5 位數字的郵遞區號。例如 02109。

  10. parsed boolean - 表示地址是否由標準化程序形成。normalize_address 函數會在傳回地址之前將其設定為 true。

  11. zip4 9 位數字郵遞區號的後 4 位數字。可用性:PostGIS 2.4.0。

  12. address_alphanumeric 完整的街道號碼,即使它有字母字元,例如 17R。使用 Pagc_Normalize_Address 函數可以更好地剖析此號碼。可用性: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 的方式存在速度問題。這些問題有望在以後的版本中解決。若要解決這些問題,如果您需要批次地理編碼的速度,以便以批次模式呼叫 generate a normaddy,建議您直接呼叫 address_standardizer standardize_address 函數,如下所示,這與我們在 Normalize_Address 中執行的操作類似,後者使用在 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

另請參閱

Normalize_Address, Geocode