The underlying code the parses the address string into fields is parse_address(string)

stdaddr=# select * from parse_address('16 Berry Lane, schenectady, ny 12302'); num | street | street2 | address1 | city | state | zip | zipplus | country
-----+------------+---------+---------------+-------------+-------+-------+---------+---------
16 | Berry Lane | | 16 Berry Lane | schenectady | NY | 12302 | | US
(1 row)

stdaddr=# select * from parse_address('16 Berry Lane, skenectady, ny 12302'); num | street | street2 | address1 | city | state | zip | zipplus | country
-----+------------------------+---------+---------------------------+------+-------+-------+---------+---------
16 | Berry Lane, skenectady | | 16 Berry Lane, skenectady | | NY | 12302 | | US
(1 row)

This one looks like the problem and I think this is a bug based on the intended coding. I thought this would split on the commas if they existed, but maybe that was changed.

Removing the comma between street and city does work:

stdaddr=# select * from parse_address('16 Berry Lane skenectady, ny 12302');
num | street | street2 | address1 | city | state | zip | zipplus | country
-----+------------+---------+---------------+------------+-------+-------+---------+---------
16 | Berry Lane | | 16 Berry Lane | skenectady | NY | 12302 | | US
(1 row)

The simplest solution for now might be to remove the commas like:

stdaddr=# select * from parse_address(replace('16 Berry Lane, skenectady, ny 12302',',','')); num | street | street2 | address1 | city | state | zip | zipplus | country
-----+------------+---------+---------------+------------+-------+-------+---------+---------
16 | Berry Lane | | 16 Berry Lane | skenectady | NY | 12302 | | US
(1 row)

http://trac.osgeo.org/postgis/ticket/2522

-Steve

On 10/29/2013 10:27 PM, crowmagnumb wrote:
I have installed the adress_standardizer (version 1.0) into a fresh install
of postgresql 9.3.1 with postgis 2.1.0 and I am finding an issue with the
address normalizer.

If I give the following valid address, it works...

db=# select internal, location, stateabbrev from pagc_normalize_address('16
Berry Lane, schenectady, ny 12302');
  internal |  location   | stateabbrev
----------+-------------+-------------
           | SCHENECTADY | NY

... but if I intentionally misspell schenectady (because I'm trying to get a
function to work using soundex() to allow misspellings), then it doesn't
work ....

db=# select internal, location, stateabbrev from pagc_normalize_address('16
Berry Lane, skenectady, ny 12302');
    internal   | location | stateabbrev
--------------+----------+-------------
  # SKENECTADY | NEW YORK |


... the misspelled town is put into the internal field and the location
becomes New York spelled out.  But then if I get rid of the comma between
Lane and the town but still misspell it, it parses as I expect...

ksedb=# select internal, location, stateabbrev from
pagc_normalize_address('16 Berry Lane skenectady, ny 12302');
  internal |  location  | stateabbrev
----------+------------+-------------
           | SKENECTADY | NY

... with the location being the incorrectly spelled town name.

Any ideas why this subtle difference occurs?





--
View this message in context: 
http://postgis.17.x6.nabble.com/Problem-with-pagc-normalize-address-results-tp5004678.html
Sent from the PostGIS - User mailing list archive at Nabble.com.
_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users


_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users

Reply via email to