Merge branch 'master' of https://github.com/CartoDB/data-services
merge
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
|
||||
@@ -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 $$
|
||||
|
||||
Reference in New Issue
Block a user