From: Regina Obe Date: Tue, 12 Jul 2011 13:03:16 +0000 (+0000) Subject: Partial fix for #1108 X-Git-Tag: 2.0.0alpha1~1211 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cf597609405c451565a95918fac587b9fad45e8a;p=postgis Partial fix for #1108 git-svn-id: http://svn.osgeo.org/postgis/trunk@7631 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql b/extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql index d7f590667..f72b56361 100644 --- a/extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql +++ b/extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql @@ -377,7 +377,7 @@ BEGIN IF debug_flag THEN RAISE NOTICE 'reduced Street: %', result.streetName; END IF; - -- the post direction might be portion of fullStreet after reducedStreet + -- the post direction might be portion of fullStreet after reducedStreet and type -- reducedStreet: 24 fullStreet: Country Road 24, N or fullStreet: Country Road 24 N tempString := regexp_replace(fullStreet, streetType || ws || '+' || reducedStreet,''); IF tempString > '' THEN @@ -412,7 +412,7 @@ BEGIN END IF; reducedStreet := substring(fullStreet, '^(.*)' || ws || '+' || streetType); - IF COALESCE(reducedStreet,'') = '' THEN --reduced street can't be blank + IF COALESCE(trim(reducedStreet),'') = '' THEN --reduced street can't be blank reducedStreet := fullStreet; streetType := NULL; result.streetTypeAbbrev := NULL; @@ -423,7 +423,8 @@ BEGIN tempString := trim(regexp_replace(fullStreet, reducedStreet || ws || '+' || streetType,'')); IF tempString > '' THEN tempString := abbrev FROM direction_lookup WHERE - tempString ILIKE '%' || name || '%' AND texticregexeq(reducedStreet || ws || '+' || streetType, '(?i)(' || name || ')' || ws || '+|$') + tempString ILIKE '%' || name || '%' + AND texticregexeq(fullStreet || ' ', '(?i)' || reducedStreet || ws || '+' || streetType || ws || '+(' || name || ')' || ws || '+') ORDER BY length(name) DESC LIMIT 1; IF tempString IS NOT NULL THEN result.postDirAbbrev = trim(tempString); diff --git a/extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress b/extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress index 4511f1ee3..93c1d77f1 100644 --- a/extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress +++ b/extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress @@ -9,6 +9,7 @@ 529||Main|St||Apt 201|Boston|MA|02129|t 529||Main|St||Apt 201|Boston|MA|02129|t 529||Main|St||Apt 201|Boston|MA||t +#1108a|529||Main|St||Suite 201|Boston|MA|02129|t #1073a|212||3rd|Ave|N||MINNEAPOLIS|MN|553404|t #1073b|212||3rd|Ave|N||MINNEAPOLIS|MN|55401|t #1073c|529||Main|St|||Boston|MA|021|t diff --git a/extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql b/extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql index af0e3bf74..9f0fa4dde 100644 --- a/extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql +++ b/extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql @@ -20,7 +20,7 @@ SELECT * FROM normalize_address('529 Main Street Apt 201, Boston, MA 02129'); SELECT * FROM normalize_address('529 Main Street, Apt 201, Boston, MA'); --This one fails so lead out for now ---SELECT * FROM normalize_address('529 Main Street, Suite 201, Boston, MA 02129'); +SELECT '#1108a' As ticket, * FROM normalize_address('529 Main Street, Suite 201, Boston, MA 02129'); -- Partial and Mangled zipcodes SELECT '#1073a' As ticket, * FROM normalize_address('212 3rd Ave N, MINNEAPOLIS, MN 553404');