0

複数の列を持つ JSON ファイルがあり、ユーザーの選択に基づいて、それらのいずれかを比較的開いたマップとして表示したいと考えています。現在、Highmaps での表示に「値」以外の列名を使用する例は見当たりません。そうですか?または、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

しかし、ユーザーが代わりに別の列を表示したい場合はどうでしょうか? 列ごとに 5 つの異なる JSON ファイルを作成し、「値」という名前を付ける必要がありますか? それは私にはかなり柔軟性がないように思えます。

最初に GeoJSON をロードし、次に JSON ファイルをロードすることに基づいて、私の Highmaps コードは次のようになります。

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

ヒントをありがとう!

4

1 に答える 1

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 データはSeries.setDatavalueを使用して動的に変更できるため、の値を変更し、動的なデータ変更のために新しいデータで setData() を呼び出すことができます。

于 2015-09-03T14:38:29.250 に答える