1

我已经能够为一系列人口普查概念获得选举区的有效数据。

例如http://data.ons.gov.uk/ons/api/data/dataset//QS201EW.json?dm%2F2011WARDH=E05001107&apikey=MYAPIKEY&jsontype=json-stat&totals=false&context=Census&geog=2011WARDH

但是,该数据的地理范围太大(这是选区级别-我相信是大都会)。我想要我能得到的最小/最细粒度的数据,并相信下超级输出层 LSOA 代表了这一点。但是,当我将 API 调用调整为该地理层次结构时,例如

http://data.ons.gov.uk/ons/api/data/dataset//QS201EW.json?dm%2F2011LSOAH=E01008368&apikey=MYAPIKEY&jsontype=json-stat&totals=false&context=Census&geog=2011LSOAH

我收到以下回复

'404 内部错误:未找到上下文人口普查和层次结构 2011LSOAH 的数据集 QS201EW'

为什么是这样?数据是否无法用于此地理层次结构,或者我的 API 调用有问题?提前感谢您的帮助。

4

2 回答 2

0

感谢其他地方的帮助,我有一个答案。问题是我定义为 2011LSOAH 的地理层次结构应该是 2011STATH。较低的超级输出层是“统计层次”的一部分。

我还发现,通过使用 ONS 的数据浏览器,这里有一个功能可以为任何给定查询构建 API url。

于 2015-10-16T07:35:53.573 回答
0

我可以稍后添加一些额外的提示:

获取一个或多个命名 LSOA 的数据 ....

http://data.ons.gov.uk/ons/api/data/dataset/QS201EW.json?dm/2011STATH=E01008397,E01008396&apikey=12345&jsontype=json-stat&totals=false&context=Census&geog=2011STATH

获取 LA 内的所有 LSOA

http://data.ons.gov.uk/ons/api/data/dataset/QS201EW.json?pdm/E08000021=LSOA&apikey=12345&jsontype=json-stat&totals=false&context=Census&geog=2011STATH

这使用替代 pdm/{parent area code}={list of child area types} 语法。

父区号也可以是祖父母或较老的祖先。您可以通过如下调用获取潜在父区域的代码 http://data.ons.gov.uk/ons/api/data/hierarchy/QS601EW.xml?context=Census&apikey=12345&geog=2011WARDH&levels=0,1, 2,3,4,5,6

另一个 PDM 示例:获取东南地区所有地方当局(任何类型)的男性人数并以 JSON-Stat 形式返回:

http://data.ons.gov.uk/ons/api/data/dataset/QS104EW.json?context=Census&apikey=12345&geog=2011WARDH&totals=true&jsontype=json-stat&dm/CL_0000035=CI_0000071&pdm/E12000008=NMD,UA,LONB,医学博士

请注意,作为使用 NeSS 服务获取邮政编码区域的替代方法,您可以使用 ArcGIS。首先调用 ESRI 世界服务以获取邮政编码或地名的 x 和 y 坐标,然后对 ONS ArcGIS 服务进行查询以返回其所在管理区域的名称/代码:

function getCentroid() {
    var searchstring = document.getElementById("postcodeorplace").value;
    var testURL = "http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/find?text=" +
    searchstring + "&outFields=*&bbox=%20-5.4188710000000002,49.865400000000001,%201.7641,55.813870000000001&sourceCountry=GBR&outSR=27700&f=json&maxLocations=6";
    getJSONResponse1(testURL);
}

function getExtCode() {
    var layer = document.getElementById("layerpicker");
    var layerval = layer.options[layer.selectedIndex].value;
    var xpos = document.getElementById("xcoord").value;
    var ypos = document.getElementById("ycoord").value;

    var testURL = "http://services1.arcgis.com/ESMARspQHYMw9BZ9/ArcGIS/rest/services/" + layerval + "/FeatureServer/0/query?returnGeometry=false&outFields=*&geometryPrecision=0&f=json&geometry=" +
                  xpos + "," + ypos + "&geometryType=esriGeometryPoint&inSR=27700"
    getJSONResponse2(testURL);
}
于 2016-10-31T14:10:37.597 回答