2015-09-02 3 views
0

У меня есть файл JSON с несколькими столбцами, и я хотел бы оставить отображение любого из них в качестве карты относительно открытой, исходя из выбора пользователя. Теперь я не вижу примеров использования других имен столбцов для отображения в Highmaps, чем «value». Это так? Или есть способ указать в коде Javascript столбец, который должен использоваться Highmaps для отображения данных?Может ли другое имя столбца, чем «значение», использоваться в 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 
    }] 

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

+0

Ваша проблема трудно понять. Может быть, это только я. – rottenoats

+0

Я добавил несколько объяснений. Возможно, это может помочь. – luftikus143

ответ

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

+0

Отлично. Большое спасибо! – luftikus143

Смежные вопросы