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
|
### Data Sources
|
||||||
|
|
||||||
Australian polygons - http://www.abs.gov.au/AUSSTATS/abs@.nsf/DetailsPage/2033.0.55.0012011?OpenDocument
|
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
|
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
|
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)
|
INSERT INTO postal_code_polygons (the_geom,adm0_a3,postal_code)
|
||||||
SELECT the_geom, 'FRA', id FROM codes_postaux;
|
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)
|
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 Canada zip codes
|
||||||
|
|
||||||
INSERT INTO postal_code_polygons (the_geom,adm0_a3,postal_code)
|
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 Australia zip codes
|
||||||
|
|
||||||
INSERT INTO postal_code_polygons (the_geom,adm0_a3,postal_code)
|
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)
|
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'])).*
|
--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[])
|
CREATE OR REPLACE FUNCTION test_geocode_postalcode_polygons(code text[], inputcountries text[])
|
||||||
RETURNS SETOF geocode_namedplace_country_v1 AS $$
|
RETURNS SETOF geocode_namedplace_country_v1 AS $$
|
||||||
|
|||||||
Reference in New Issue
Block a user