merge
This commit is contained in:
Chris Henrick
2014-08-21 15:36:57 -04:00
3 changed files with 11 additions and 35 deletions

View File

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

View File

@@ -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;
SELECT the_geom, 'USA', zcta5ce10 FROM tl_2013_us_zcta510;

View File

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