From: Regina Obe Date: Tue, 12 Jul 2011 19:45:53 +0000 (+0000) Subject: Fix for #1112 service roads X-Git-Tag: 2.0.0alpha1~1210 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6c9cd330e2c2630798d27469a3054aa47f0ab312;p=postgis Fix for #1112 service roads git-svn-id: http://svn.osgeo.org/postgis/trunk@7632 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 f72b56361..bd7d4ee06 100644 --- a/extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql +++ b/extras/tiger_geocoder/tiger_2010/normalize/normalize_address.sql @@ -557,6 +557,7 @@ BEGIN -- If a post direction is given, then the location is everything after, -- the street name is everything before, less any pre direction. + fullStreet := trim(fullStreet); tempInt := count(*) FROM direction_lookup WHERE fullStreet ILIKE '%' || name || '%' AND texticregexeq(fullStreet, '(?i)' || ws || name || '(?:' || ws || '|$)'); diff --git a/extras/tiger_geocoder/tiger_2010/regress/geocode_regress b/extras/tiger_geocoder/tiger_2010/regress/geocode_regress index 23e58e811..528c5cf2f 100644 --- a/extras/tiger_geocoder/tiger_2010/regress/geocode_regress +++ b/extras/tiger_geocoder/tiger_2010/regress/geocode_regress @@ -100,3 +100,8 @@ T16|Federal Ln, Dedham, MA 02026|POINT(-71.18356 42.23829)|39 #1074b|8525 Cottagewood Ter NE, Blaine, MN 55434|8525 COTTAGEWOOD TERR, Blaine, MN 55434|POINT(-93.24462 45.12481)|4 #1070a|100 Federal St, Lynn, MA 01905|POINT(-70.96783 42.4659)|8 #1070b|100 Federal St, Lynn, MA 01905|POINT(-70.96783 42.4659)|8 +#1112a|8401 W 35W Svc Rd NE, Blaine, MN 55449|8401 W 35W Service Dr NE, Blaine, MN 55449|POINT(-93.19084 45.12386)|10 +#1112b|8401 W 35W Svc Rd NE, Blaine, MN 55449|8401 35W, Blaine, MN 55449|POINT(-93.19084 45.12386)|36 +#1112c|8401 W 35W Svc Rd NE, Blaine, MN 55449|8401 35W West, Blaine, MN 55449|POINT(-93.19084 45.12386)|36 +#1112d|8401 W 35W Svc Rd NE, Blaine, MN 55449|8401 West 35W, Blaine, MN 55449|POINT(-93.19084 45.12386)|34 +#1112e|8401 W 35W Svc Rd NE, Blaine, MN 55449|8401 W 35W, Blaine, MN 55449|POINT(-93.19084 45.12386)|34 diff --git a/extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql b/extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql index 92d83cd3b..5578eff4e 100644 --- a/extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql +++ b/extras/tiger_geocoder/tiger_2010/regress/geocode_regress.sql @@ -60,4 +60,12 @@ SELECT '#1074b' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(S -- testing region -- SELECT '#1070a' As ticket, pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('100 Federal Street, Boston, MA 02109',3, (SELECT ST_Union(the_geom) FROM place WHERE statefp = '25' AND name = 'Lynn')::geometry); SELECT '#1070b' As ticket, pprint_addy(addy) As address, ST_AsText(ST_SnapToGrid(geomout,0.00001)) As pt, rating FROM geocode('100 Federal Street, MA',3, (SELECT ST_Union(the_geom) FROM place WHERE statefp = '25' AND name = 'Lynn')::geometry); + + +-- service roads and interstates +SELECT '#1112a' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '8401 W 35W Service Dr NE, Blaine, MN 55449'::text As target) As f) As foo; +SELECT '#1112b' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '8401 35W, Blaine, MN 55449'::text As target) As f) As foo; +SELECT '#1112c' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '8401 35W West, Blaine, MN 55449'::text As target) As f) As foo; +SELECT '#1112d' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '8401 West 35W, Blaine, MN 55449'::text As target) As f) As foo; +SELECT '#1112e' As ticket, pprint_addy((g).addy) As address, target, ST_AsText(ST_SnapToGrid((g).geomout, 0.00001)) As pt, (g).rating FROM (SELECT geocode(target,2) As g, target FROM (SELECT '8401 W 35W, Blaine, MN 55449'::text As target) As f) As foo; \timing 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 9f0fa4dde..657f66aca 100644 --- a/extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql +++ b/extras/tiger_geocoder/tiger_2010/regress/normalize_address_regress.sql @@ -64,6 +64,13 @@ SELECT '#1109b' As ticket, * from normalize_address('4373 LAKE DR, ROBBINSDALE, SELECT '#1074a' As ticket, * FROM normalize_address('3420 RHODE ISLAND AVE S, ST. LOUIS PARK, MN 55426'); -- another type that is part of street name -- -SELECT '#1074b' As ticket, * FROM normalize_address('26 Court Street, Boston,MA 02109') +SELECT '#1074b' As ticket, * FROM normalize_address('26 Court Street, Boston,MA 02109'); + +-- service roads and interstates +SELECT '#1112a' As ticket, * FROM normalize_address('8401 W 35W Service Dr NE, Blaine, MN 55449'); +SELECT '#1112b' As ticket, * FROM normalize_address('8401 35W, Blaine, MN 55449'); +SELECT '#1112c' As ticket, * FROM normalize_address('8401 35W West, Blaine, MN 55449'); +SELECT '#1112d' As ticket, * FROM normalize_address('8401 West 35W, Blaine, MN 55449'); +SELECT '#1112e' As ticket, * FROM normalize_address('8401 W 35W, Blaine, MN 55449'); \timing diff --git a/extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql b/extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql index 8e12f49f8..206312500 100644 --- a/extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql +++ b/extras/tiger_geocoder/tiger_2010/tables/lookup_tables_2010.sql @@ -540,6 +540,14 @@ INSERT INTO street_type_lookup (name, abbrev) VALUES ('ROADS', 'Rds'); INSERT INTO street_type_lookup (name, abbrev) VALUES ('ROW', 'Row'); INSERT INTO street_type_lookup (name, abbrev) VALUES ('RUE', 'Rue'); INSERT INTO street_type_lookup (name, abbrev) VALUES ('RUN', 'Run'); +-- Start newly added 2011-7-12 -- +INSERT INTO street_type_lookup (name, abbrev) + VALUES + ('SERVICE DRIVE', 'Svc Dr'), + ('SERVICE DR', 'Svc Dr'), + ('SERVICE ROAD', 'Svc Rd'), + ('SERVICE RD', 'Svc Rd') ; +-- end newly added 2011-07-12 -- INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHL', 'Shl'); INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHOAL', 'Shl'); INSERT INTO street_type_lookup (name, abbrev) VALUES ('SHLS', 'Shls'); diff --git a/extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql b/extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql index eb8d3ba04..88a3a7b09 100644 --- a/extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql +++ b/extras/tiger_geocoder/tiger_2010/upgrade_geocode.sql @@ -140,6 +140,21 @@ SELECT name, abbrev, true WHERE t.name NOT IN(SELECT name FROM street_type_lookup); DROP TABLE temp_types; DELETE FROM street_type_lookup WHERE name = 'FOREST'; + +CREATE TEMPORARY TABLE temp_types AS +SELECT name, abbrev + FROM (VALUES + ('SERVICE DRIVE', 'Svc Dr'), + ('SERVICE DR', 'Svc Dr'), + ('SERVICE ROAD', 'Svc Rd'), + ('SERVICE RD', 'Svc Rd') + ) t(name, abbrev); + +DELETE FROM street_type_lookup WHERE name IN(SELECT name FROM temp_types); +INSERT INTO street_type_lookup (name, abbrev, is_hw) +SELECT name, abbrev, false + FROM temp_types As t + WHERE t.name NOT IN(SELECT name FROM street_type_lookup); -- System/General helper functions \i utility/utmzone.sql \i utility/cull_null.sql