Может ли другое имя столбца, кроме "значения", использоваться в Highmaps?

У меня есть файл JSON с несколькими столбцами, и я хотел бы, чтобы отображение любого из них в виде карты было относительно открытым в зависимости от выбора пользователя. Теперь я не вижу примеров использования имен других столбцов для отображения в Highmaps, кроме "value". Это так? Или есть какой-нибудь способ назвать в коде Javascript столбец, который должен использоваться Highmaps для отображения данных?

То есть имена столбцов (например) следующие:

LC_Ctry_Limit,LC_Capita_Limit,LC_Ctry_Footprint,LC_Capita_Footprint,LC_Score

Теперь, чтобы иметь возможность отображать данные из LC_Score, мне нужно переименовать столбец (жестко запрограммированный в JSON-файл) в "значение". Таким образом:

LC_Ctry_Limit,LC_Capita_Limit,LC_Ctry_Footprint,LC_Capita_Footprint,value

Но что, если пользователь хочет отобразить другой столбец? Нужно ли создавать пять разных файлов JSON для каждого столбца и называть его "значением"? Это кажется довольно негибким для меня.

Мой Highmaps-код выглядит следующим образом, основанный на загрузке сначала GeoJSON, а затем файла JSON, и я предполагаю, что это должно быть что-то вроде спецификатора имени столбца:

    series : [
    {
        data : data,
        mapData: geojson,
        joinBy: ['Country_40','Country'],
        name: 'LC_Score',
        borderWidth: 0.2,
        COLUMN-TO-BE-USED: lorem
    }]

Спасибо за любые подсказки!

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() с новыми данными для динамического изменения данных.

Другие вопросы по тегам