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; }
function _api_getGeometry() { if (!defined('OPTION_MAPIT_URL') || !OPTION_MAPIT_URL) return array('data'=>array()); if (get_http_var('future')) { $areas = _api_cacheCheck('_api_futureAreaIds'); } else { $areas = _api_cacheCheck('mapit_get_areas_by_type', 'WMC'); } $areas_geometry = _api_cacheCheck('mapit_get_voting_areas_geometry', $areas); $ni_geometry = _api_ni_centroids(); $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']; } if (!get_http_var('future')) { $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']; } elseif ($ni_geometry[$area_id]) { $out['name'] = $name; $out['centre_lat'] = $ni_geometry[$area_id]['centre_lat']; $out['centre_lon'] = $ni_geometry[$area_id]['centre_lon']; } $areas_out['data'][$name] = $out; } return $areas_out; }