Пример #1
0
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;
}
Пример #2
0
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');
    }
}
Пример #3
0
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;
}
Пример #5
0
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;
}