名稱

standardize_address — 返回一個使用詞法(lex)、地名(gaz)和規則表(rule)的輸入地址的 stdaddr 格式。

概要

stdaddr standardize_address(text lextab, text gaztab, text rultab, text address);

stdaddr standardize_address(text lextab, text gaztab, text rultab, text micro, text macro);

描述

返回一個輸入地址的 stdaddr 格式,該輸入地址使用 詞法表 表名稱、地名表規則表 表名稱以及一個地址。

變體 1:將地址作為單行輸入。

變體 2:將地址作為兩個部分輸入。一個 micro,包含標準的郵政地址第一行,例如 門牌號碼 街道,和一個 macro,包含標準的郵政地址第二行,例如 城市, 州 郵遞區號 國家

可用性:2.2.0

此方法需要 address_standardizer 擴充功能。

範例

使用 address_standardizer_data_us 擴充功能

CREATE EXTENSION address_standardizer_data_us; -- only needs to be done once

變體 1:單行地址。這對於非美國地址效果不佳

SELECT house_num, name, suftype, city, country, state, unit  FROM standardize_address('us_lex',
			   'us_gaz', 'us_rules', 'One Devonshire Place, PH 301, Boston, MA 02109');
house_num |    name    | suftype |  city  | country |     state     |      unit
----------+------------+---------+--------+---------+---------------+-----------------
1         | DEVONSHIRE | PLACE   | BOSTON | USA     | MASSACHUSETTS | # PENTHOUSE 301

使用與 tiger 地理編碼器一起打包的表格。只有在您安裝了 postgis_tiger_geocoder 的情況下,此範例才有效。

SELECT *  FROM standardize_address('tiger.pagc_lex',
         'tiger.pagc_gaz', 'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA 02109-1234');

為了更容易閱讀,我們將使用 hstore 擴充功能轉儲輸出。CREATE EXTENSION hstore; 您需要安裝

SELECT (each(hstore(p))).*
 FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz',
   'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA 02109') As p;
    key     |      value
------------+-----------------
 box        |
 city       | BOSTON
 name       | DEVONSHIRE
 qual       |
 unit       | # PENTHOUSE 301
 extra      |
 state      | MA
 predir     |
 sufdir     |
 country    | USA
 pretype    |
 suftype    | PL
 building   |
 postcode   | 02109
 house_num  | 1
 ruralroute |
(16 rows)
			

變體 2:作為兩部分地址

SELECT (each(hstore(p))).*
 FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz',
   'tiger.pagc_rules', 'One Devonshire Place, PH 301', 'Boston, MA 02109, US') As p;
    key     |      value
------------+-----------------
 box        |
 city       | BOSTON
 name       | DEVONSHIRE
 qual       |
 unit       | # PENTHOUSE 301
 extra      |
 state      | MA
 predir     |
 sufdir     |
 country    | USA
 pretype    |
 suftype    | PL
 building   |
 postcode   | 02109
 house_num  | 1
 ruralroute |
(16 rows)