Last active
July 7, 2019 10:53
-
-
Save pezholio/ebea5c9d42d6a490a2808e270b1d8d03 to your computer and use it in GitHub Desktop.
Getting parliamentary constituencies from MapIt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This assumes you have node-rest-client (https://www.npmjs.com/package/node-rest-client) installed and available in your NODE_PATH | |
var Client = require('node-rest-client').Client; | |
var postcode = 'SW1A1AA'; // Or whatever postcode you're looking for | |
var uri = 'https://mapit.mysociety.org/postcode/' + postcode; | |
var getConstituency = function(uri, callback) { | |
var client = new Client(); | |
client.get(uri, function(data, response) { | |
constituencyCode = data.shortcuts.WMC; | |
constituency = data.areas[constituencyCode] | |
callback(constituency); | |
return; | |
}); | |
}; | |
getConstituency(uri, function(data) { | |
console.log(data); | |
// { parent_area: null, generation_high: 30, all_names: {}, id: 65759, codes: { gss: 'E14000639', unit_id: '25040' }, name: 'Cities of London and Westminster', country: 'E', type_name: 'UK Parliament constituency', generation_low: 13, country_name: 'England', type: 'WMC' } | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$postcode = 'SW1A1AA'; # Or whatever postcode you're looking for | |
$api_key = ''; # specify your API key here | |
$uri = "https://mapit.mysociety.org/postcode/$postcode?api_key=$api_key"; | |
$json = json_decode(file_get_contents($uri), true); | |
$constituency_code = $json['shortcuts']['WMC']; | |
# => 65759 | |
$constituency = $json['areas'][$constituency_code]; | |
# { ["parent_area"]=> NULL ["generation_high"]=> int(30) ["all_names"]=> array(0) { ["id"]=> int(65759) ["codes"]=> array(2) { ["gss"]=> string(9) "E14000639" ["unit_id"]=> string(5) "25040" } ["name"]=> string(32) "Cities of London and Westminster" ["country"]=> string(1) "E" ["type_name"]=> string(26) "UK Parliament constituency" ["generation_low"]=> int(13) ["country_name"]=> string(7) "England" ["type"]=> string(3) "WMC" } | |
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests # pip install requests | |
postcode = 'SW1A1AA' # Or whatever postcode you're looking for | |
uri = "https://mapit.mysociety.org/postcode/{0}".format(postcode) | |
response = requests.get(uri) | |
response.raise_for_status() | |
json = response.json() | |
constituency_code = str(json['shortcuts']['WMC']) | |
# u'65759' | |
constituency = json['areas'][constituency_code] | |
# {u'codes': {u'gss': u'E14000639', u'unit_id': u'25040'}, u'name': u'Cities of London and Westminster', u'country': u'E', u'type_name': u'UK Parliament constituency', u'parent_area': None, u'generation_high': 30, u'all_names': {}, u'generation_low': 13, u'country_name': u'England', u'type': u'WMC', u'id': 65759} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'json' | |
require 'net/http' | |
postcode = 'SW1A1AA' # Or whatever postcode you're looking for | |
api_key = '' # Specify your API key here | |
uri = URI("https://mapit.mysociety.org/postcode/#{postcode}?api_key=#{api_key}") | |
response = Net::HTTP.get(uri) | |
json = JSON.parse(response) | |
constituency_code = json['shortcuts']['WMC'].to_s | |
#=> "65759" | |
constituency = json['areas'][constituency_code] | |
#=> {"parent_area"=>nil, "generation_high"=>30, "all_names"=>{}, "id"=>65759, "codes"=>{"gss"=>"E14000639", "unit_id"=>"25040"}, "name"=>"Cities of London and Westminster", "country"=>"E", "type_name"=>"UK Parliament constituency", "generation_low"=>13, "country_name"=>"England", "type"=>"WMC"} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment