我有一个包含多列的JSON文件,并希望根据用户的选择将这些列的显示保持为相对开放的地图。现在,我看不到使用其他列名在Highmaps中显示的任何示例而不是" value"。是这样吗?或者有没有办法在Javascript代码中为Highmaps用于显示数据的列命名?
也就是说,列名是(例如)这些:
LC_Ctry_Limit,LC_Capita_Limit,LC_Ctry_Footprint,LC_Capita_Footprint,LC_Score
现在,为了能够显示来自LC_Score的数据,我需要将列(硬编码到JSON文件中)重命名为" value"。因此:
LC_Ctry_Limit,LC_Capita_Limit,LC_Ctry_Footprint,LC_Capita_Footprint,value
但是,如果用户想要显示另一列,那该怎么办?我是否需要为每列创建五个不同的JSON文件,并将其命名为" value"然后?这对我来说似乎相当不灵活。
我的Highmaps代码看起来像这样,基于首先加载GeoJSON然后加载JSON文件,我想在那里,它应该是关于列名称说明符的东西:
series : [
{
data : data,
mapData: geojson,
joinBy: ['Country_40','Country'],
name: 'LC_Score',
borderWidth: 0.2,
COLUMN-TO-BE-USED: lorem
}]
感谢任何提示!
答案 0 :(得分:1)
您可以在图表的选项/配置中设置数据之前设置value
属性的值。此选择可以基于传递给函数的值,该函数将返回准备好的数组以进行配置。
示例:http://jsfiddle.net/bmv0y8dn/
var columnToBeUsed = 'lorem';
$('#container').highcharts('Map', {
series: [{
data: (function (columnToBeUsed) {
var len = data.length,
tab = [];
for (var i = 0; i < len; i++) {
data[i].value = data[i][columnToBeUsed];
}
return data;
})(columnToBeUsed),
...
系列数据可以使用Series.setData动态更改,因此您可以更改value
的值,并使用新数据调用setData()以进行动态数据更改。