我正在尝试从JSON文件中获取数据并将其链接到我的geoJSON文件,以创建一个区域颜色绑定到“金额”值的等值区域图,但我也想要一个相应的“注释”值当我将鼠标移到那个县时,被绑定到一个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." },
我无法理解如何加入“id”:来自counties.json的“Carlow”和来自ireland.json的“id”:“Carlow”路径,同时可以访问在counties.json中的其他值,即“金额”和“评论”。
对于我不善言辞的问题道歉,但如果有人能指出我的例子或参考,我可以查看那将是很棒的。
答案 0 :(得分: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', ...}, ...}