Pagc_Normalize_Address — 在给定文本街道地址的情况下,返回一个复合 norm_addy
具有道路后缀、前缀和标准化类型、街道、街道名称等的类型划分为单独的字段。该函数将只处理用Tiger_Geocode打包的查找数据(不需要Tiger人口普查数据)。需要ADDRESS_STANDIZER扩展名。
norm_addy pagc_normalize_address(
varchar in_address)
;
在给定文本街道地址的情况下,返回一个复合 norm_addy
具有道路后缀、前缀和标准化类型、街道、街道名称等的类型划分为单独的字段。这是将所有地址转换为标准化邮政格式的地理编码过程的第一步。除了与地理编码器一起打包的数据外,不需要其他数据。
此函数仅使用随Tiger_Geocoder预加载的各种Pagc_*查找表,这些查找表位于 tiger
模式,因此您不需要下载老虎普查数据或任何其他附加数据即可使用它。您可能会发现需要向中的各种查找表添加更多缩写或替代名称 tiger
架构。
它使用位于以下位置的各种控件查找表 tiger
用于标准化输入地址的架构。
中的字段 norm_addy
TYPE OBJECT由该函数按以下顺序返回,其中()表示地理编码器需要的字段,[]表示可选字段:
的大小写和格式略有不同。 Normalize_Address 。
可用性:2.1.0
This method needs address_standardizer extension.
(地址)[predirAbbrev](街道名称)[streetTypeAbbrev][postdirAbbrev][内部][位置][stateAbbrev][压缩]
现在,ADDRESS_STANDIZER扩展的原生标准地址比NORM_ADDY要丰富一些,因为它旨在支持国际地址(包括国家/地区)。标准地址等效字段为:
House_num,predir,名称,suftype,sufdir,单位,城市,州,邮政编码
增强:2.4.0 Norm_Addy对象包括附加字段ZIP4和Address_AlphanNumeric。
address
是一个整数:街道编号
predirAbbrev
是varchar:道路的方向前缀,如N、S、E、W等。这些是使用 direction_lookup
数据表。
streetName
Varchar
streetTypeAbbrev
街道类型的varchar缩写版本:例如ST、Ave、Cir。这些都是使用 street_type_lookup
数据表。
postdirAbbrev
道路N、S、E、W等的缩写方向。这些都是使用 direction_lookup
数据表。
internal
Varchar内部地址,如公寓或套房编号。
location
瓦尔察尔通常是一个城市或管理省份。
stateAbbrev
Varchar两个字符的美国州。例如密歇根州纽约州马萨诸塞州。这些属性由 state_lookup
数据表。
zip
Varchar 5位数字邮政编码。例如02109。
parsed
Boolean-表示addess是否由规格化过程形成。NORMALIZE_ADDRESS函数在返回地址之前将其设置为真。
zip4
9位邮政编码的最后4位。提供:PostGIS 2.4.0。
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_STANDIZER STANDIZE_ADDRESS函数,如下所示,该练习与我们在中所做的类似 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