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;
}