可以在 Highmaps 中使用除 "value" 以外的其他列名称吗?

Can another column name than "value" be used in Highmaps?

我有一个包含多列的 JSON 文件,我想根据用户的选择,将其中任何一个显示为相对开放的地图。现在,除了 "value",我看不到任何使用其他列名称在 Highmaps 中显示的示例。是这样吗?或者有什么方法可以在 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
    }]

感谢任何提示!

您可以在设置图表 options/configuration 中的数据之前设置 value 属性 的值。此选择可以基于传递给函数的值,该函数将 return 准备好配置数组。

示例: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() 以进行动态数据更改。