function _api_getGeometry() { if (!defined('OPTION_MAPIT_URL') || !OPTION_MAPIT_URL) { return array('data' => array()); } $areas = _api_cacheCheck('mapit_get_areas_by_type', 'WMC'); $areas_geometry = _api_cacheCheck('mapit_get_voting_areas_geometry', $areas); $areas_info = _api_cacheCheck('mapit_get_voting_areas_info', $areas); $areas_out = array('date' => date('Y-m-d'), 'data' => array()); $names = array(); foreach (array_keys($areas_info) as $area_id) { $names[$area_id] = $areas_info[$area_id]['name']; } $names = normalise_constituency_names($names); foreach (array_keys($areas_info) as $area_id) { $out = array(); $name = $names[$area_id]; if (count($areas_geometry[$area_id])) { $out['name'] = $name; $out['centre_lat'] = $areas_geometry[$area_id]['centre_lat']; $out['centre_lon'] = $areas_geometry[$area_id]['centre_lon']; $out['area'] = $areas_geometry[$area_id]['area']; $out['min_lat'] = $areas_geometry[$area_id]['min_lat']; $out['max_lat'] = $areas_geometry[$area_id]['max_lat']; $out['min_lon'] = $areas_geometry[$area_id]['min_lon']; $out['max_lon'] = $areas_geometry[$area_id]['max_lon']; $out['parts'] = $areas_geometry[$area_id]['parts']; } $areas_out['data'][$name] = $out; } return $areas_out; }
function api_getBoundary_name($name) { $name = html_entity_decode(normalise_constituency_name($name)); # XXX if (!$name) { api_error('Name not recognised'); return; } $out = array(); $areas = _api_cacheCheck('mapit_get_areas_by_type', 'WMC'); $areas_info = _api_cacheCheck('mapit_get_voting_areas_info', $areas); $id = null; foreach ($areas_info as $k => $v) { if (html_entity_decode(normalise_constituency_name($v['name'])) == $name) { $id = $k; } } if (!$id) { api_error('No data found for name'); return; } $out = mapit_get_voting_area_geometry($id, 'wgs84'); if (isset($out['polygon'])) { api_output($out['polygon']); } else { api_error('Nothing returned from get_voting_areas_geometry'); } }
function api_getBoundary_name($name) { $name = normalise_constituency_name($name); if (!$name) { api_error('Name not recognised'); return; } $out = array(); $areas_info = _api_cacheCheck('areas', 'WMC'); $id = null; foreach ($areas_info as $k => $v) { if (normalise_constituency_name($v['name']) == $name) { $id = $k; } } if (!$id) { api_error('No data found for name'); return; } header("Location: http://mapit.mysociety.org/area/4326/{$id}.kml"); exit; }
function _api_getGeometry_name($name) { if (!defined('OPTION_MAPIT_URL') || !OPTION_MAPIT_URL) return null; $name = normalise_constituency_name($name); $areas = _api_cacheCheck('mapit_get_areas_by_type', 'WMC'); $ni_geometry = _api_ni_centroids(); $areas_info = _api_cacheCheck('mapit_get_voting_areas_info', $areas); foreach ($areas_info as $area_id => $area) { if ($name == $area['name']) { if (isset($ni_geometry[$area_id])) { $out = $ni_geometry[$area_id]; } else { $out = mapit_call('area/geometry', $area_id); } $out['name'] = $name; return $out; } } return null; }
function _api_getGeometry_name($name) { if (!defined('OPTION_MAPIT_URL') || !OPTION_MAPIT_URL) { return null; } $name = MySociety\TheyWorkForYou\Utility\Constituencies::normaliseConstituencyName($name); # Names are currently in ISO-8859-1, but MapIt is in UTF-8 $name_utf8 = iconv('iso-8859-1', 'utf-8//TRANSLIT', $name); $areas_info = _api_cacheCheck('areas', 'WMC'); $ni_geometry = _api_ni_centroids(); foreach ($areas_info as $area_id => $area) { if ($name_utf8 == $area['name']) { if (isset($ni_geometry[$area_id])) { $out = $ni_geometry[$area_id]; } else { $out = mapit_call('area/geometry', $area_id); } $out['name'] = $name; return $out; } } return null; }