diff --git a/geocoder/postal-codes/README.md b/geocoder/postal-codes/README.md index 71ff354..81dbedf 100644 --- a/geocoder/postal-codes/README.md +++ b/geocoder/postal-codes/README.md @@ -8,8 +8,10 @@ Postal code geocoder ### Data Sources Australian polygons - http://www.abs.gov.au/AUSSTATS/abs@.nsf/DetailsPage/2033.0.55.0012011?OpenDocument +Download the KMZ for *Postal Area IRSD, SEIFA 2011*. Unzip and upload the kmz Canadian polygons - http://www12.statcan.gc.ca/census-recensement/2011/geo/bound-limit/bound-limit-2011-eng.cfm +Download ESRI Shp, Forward Sortation Areas, Digital Boundary USA polygons - http://www2.census.gov/geo/tiger/TIGER2013/ZCTA5/tl_2013_us_zcta510.zip diff --git a/geocoder/postal-codes/sql/build_data_table.sql b/geocoder/postal-codes/sql/build_data_table.sql index 1b7f56e..2b59ddb 100644 --- a/geocoder/postal-codes/sql/build_data_table.sql +++ b/geocoder/postal-codes/sql/build_data_table.sql @@ -11,24 +11,26 @@ DELETE FROM postal_code_polygons; INSERT INTO postal_code_polygons (the_geom,adm0_a3,postal_code) SELECT the_geom, 'FRA', id FROM codes_postaux; --- Insert USA zip codes +-- Insert UK zip codes INSERT INTO postal_code_polygons (the_geom,adm0_a3,postal_code) -SELECT the_geom, 'USA', postal_code FROM global_postal_code_polygons WHERE iso3 = 'USA'; - +SELECT the_geom, 'GBR', postalcode FROM uk_postcodes; -- Insert Canada zip codes INSERT INTO postal_code_polygons (the_geom,adm0_a3,postal_code) -SELECT the_geom, 'CAN', postal_code FROM global_postal_code_polygons WHERE iso3 = 'CAN'; +SELECT the_geom, 'CAN', cfsauid FROM gfsa000a11a_e; -- Insert Australia zip codes INSERT INTO postal_code_polygons (the_geom,adm0_a3,postal_code) -SELECT the_geom, 'AUS', postal_code FROM global_postal_code_polygons WHERE iso3 = 'AUS'; +SELECT the_geom, 'AUS', name FROM doc; --- Insert UK zip codes + +-- Insert USA zip codes INSERT INTO postal_code_polygons (the_geom,adm0_a3,postal_code) -SELECT the_geom, 'GBR', postalcode FROM uk_postcodes; \ No newline at end of file +SELECT the_geom, 'USA', zcta5ce10 FROM tl_2013_us_zcta510; + + diff --git a/geocoder/postal-codes/sql/geocoder.sql b/geocoder/postal-codes/sql/geocoder.sql index fd28dea..78e1f14 100644 --- a/geocoder/postal-codes/sql/geocoder.sql +++ b/geocoder/postal-codes/sql/geocoder.sql @@ -1,34 +1,6 @@ ---SELECT (geocode_postalcode_polygons(Array['10013','11201','03782'], 'USA')).*; --SELECT (geocode_postalcode_polygons(Array['10013','G9H','03782'], Array['USA', 'Canada', 'US'])).* -CREATE OR REPLACE FUNCTION test_geocode_postalcode_polygons(code text[], inputcountry text) - RETURNS SETOF geocode_namedplace_v1 AS $$ - DECLARE - c_iso3 text; - ret geocode_namedplace_v1%rowtype; - BEGIN - SELECT INTO c_iso3 adm0_a3 FROM admin0_synonyms WHERE name_ = lower(regexp_replace(c, '[^a-zA-Z\u00C0-\u00ff]+', '', 'g'))::text LIMIT 1; - FOR ret IN - SELECT - q, geom, CASE WHEN geom IS NULL THEN FALSE ELSE TRUE END AS success - FROM ( - SELECT - q, ( - SELECT the_geom - FROM postal_code_polygons - WHERE postal_code = upper(d.q) - AND adm0_a3 = c_iso3 - ) geom - FROM (SELECT unnest(code) q) d - ) v - LOOP - RETURN NEXT ret; - END LOOP; - RETURN; -END -$$ LANGUAGE 'plpgsql' SECURITY DEFINER; - CREATE OR REPLACE FUNCTION test_geocode_postalcode_polygons(code text[], inputcountries text[]) RETURNS SETOF geocode_namedplace_country_v1 AS $$