Fix for #1112 service roads

git-svn-id: http://svn.osgeo.org/postgis/trunk@7632 b70326c6-7e19-0410-871a-916f4a2858ee
This commit is contained in:
Regina Obe 2011-07-12 19:45:53 +00:00
parent cf59760940
commit 6c9cd330e2
6 changed files with 45 additions and 1 deletions

View file

@ -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 || '|$)');

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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');

View file

@ -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