0

我正在尝试从 JSON 文件中获取数据并将其链接到我的 geoJSON 文件以创建一个 choropleth 地图,其中县颜色绑定到“数量”值,但我也希望将相应的“评论”值绑定到当我将鼠标悬停在那个县时的 div。

当我的counties.json 数据采用以下形式时,我在http://bl.ocks.org/eoiny/6244102的代码将生成一个等值线图:

"Carlow":3,"Cavan":4,"Clare":5,"Cork":3,

但是当我尝试使用以下形式时,事情变得很棘手:

{
"id":"Carlow",
"amount":11,
"comment":"The figures for Carlow show a something." },

我不知道如何从counties.json加入“id”:“Carlow”和从ireland.json创建的“id”:“Carlow”路径,同时访问其他值counties.json 即“金额”和“评论”。

为我口齿不清的问题道歉,但如果有人能指出我的例子或参考资料,我可以查一下,那就太好了。

4

1 回答 1

1

我会在加载数据时对其进行预处理,以使您在量化函数中更容易查找。基本上,用这个替换data = json;

data = json.reduce(function(result, county) {
    result[county.id] = county;
    return result;
}, {});

然后在你的量化函数中,你得到这样的数量:

function quantize(d) {
    return "q" + Math.min(8, ~~(data[d.id].amount * 9 / 12)) + "-9";
}

预处理所做的是转这个数组(很容易通过索引访问):

[{id: 'xyz', ...}, {id: 'pdq', ...}, ...]

使用县键进入此对象(通过县 ID 轻松访问):

{'xyz': {id: 'xyz', ...}, 'pdq': {id: 'pdq', ...}, ...}

这是工作要点:http ://bl.ocks.org/rwaldin/6244803

于 2013-08-15T20:59:33.693 回答