Pagc_Normalize_Address — Dado um endereço em texto de uma rua, retorna um tipo composto norm_addy
que não tem um sufixo, prefixo e tipo padronizado, rua, nome de rua etc. quebrado e, campos separados. Essa função irá funcionar com os dados lookup compactados com o tiger_geocoder (dados do censo tiger não são necessários). Requer a extensão address_standardizer.
norm_addy pagc_normalize_address(
varchar in_address)
;
Dado um endereço em texto de uma rua, retorna um tipo composto norm_addy
que não tem um sufixo, prefixo e tipo padronizado, rua, nome de rua etc. quebrado e, campos separados. Esse é o primeiro passo no processo de geocodificação para tornar todos os endereços normalizados no formato postal. Nenhum outro dado é requerido à parte do que está compactado com o geocoder.
Essa função utiliza as várias lookup tables pagc_* pré carregadas com o tiger_geocoder e localizadas no esquema tiger
, então, você não precisa baixar os dados do censo tiger ou qualquer outro tipo de dados para utilizá-la. Talvez você ache necessário adicionar mais abreviações ou nomes alternativos para as lookup tables no esquema tiger
.
Utiliza várias tables lookup de controle localizadas no esquema tiger
para normalizar o endereço de entrada.
Campos no tipo de objeto norm_addy
retornou pela função nessa ordem, onde () indica um campo requerido pelo geocoder, [] indica um campo opcional:
Existem pequenas variações no revestimento e formatação do Normalize_Address.
Disponibilidade: 2.1.0
This method needs address_standardizer extension.
(address) [predirAbbrev] (streetName) [streetTypeAbbrev] [postdirAbbrev] [internal] [location] [stateAbbrev] [zip]
O standardaddr natural da extensão address_standardizer é um pouco mais rico que norm_addy, já que foi desenvolvido para suportar endereços internacionais (incluindo países). Os campos equivalentes do standardaddr são:
house_num,predir, name, suftype, sufdir, unit, city, state, postcode
Enhanced: 2.4.0 norm_addy object includes additional fields zip4 and address_alphanumeric.
address
é um inteiro: O número da rua
predirAbbrev
is varchar: Prefixo direcional para rua como N, S, L, O etc. Esse são controlados usando a table direction_lookup
.
streetName
varchar
A versão varchar streetTypeAbbrev
abreviada dos tipos de rua: ex: St., Av., Cir. Elas são controladas usando a tables street_type_lookup
.
As direções varchar postdirAbbrev
abreviadas N, S, L, O etc. Elas são controladas utilizando a table direction_lookup
.
Varchar interno
endereço interno como um apartamento ou número de suíte.
Varchar localização
normalmente uma cidade ou província governante.
Os estados varchar stateAbbrev
dos EUA de dois caracteres. ex: MA, NY, MI. Estes são controlados pela table state_lookup
.
zip
varchar 5-digit zipcode. e.g. 02109.
parsed
booleana - indica se um endereço foi formado pelo processo normalizador. A função normalize_address coloca isso como verdade antes de retornar o endereço.
zip4
last 4 digits of a 9 digit zip code. Availability: PostGIS 2.4.0.
address_alphanumeric
Full street number even if it has alpha characters like 17R. Parsing of this is better using Pagc_Normalize_Address function. Availability: PostGIS 2.4.0.
Exemplo de chamada única
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
Batch call. Existem issues de velocidade com a forma que o postgis_tiger_geocoder empacota o address_standardizer. Elas serão solucionadas em edições posteriores. Para funcionar em volta delas, se você precisa de velocidade para geocodificação agrupada para gerar um normaddy em modo agrupado, você é instigado a usar a função address_standardizer standardize_address diretamente, como é mostrado abaixo, que é similar ao exercício que fizemos em Normalize_Address que usa os dados criados em 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