Highcharts: переход от карты к диаграмме

Пожалуйста, рассмотрите Kuwait карту:

Карта Кувейта

Я хочу, чтобы когда пользователь нажимал на одно состояние (например, Аль-Джахра), отображалась столбчатая диаграмма для серии Аль-Джахра. Например:

Category For: Al Jahrah            Value For: Al Jahrah 
--------------------------------------------------------
Cat1                               10
Cat2                               12
Cat3                               3

Я искал в Интернете, но я видел только детализацию страны до штатов. Является ли это возможным?

Спасибо


person Arian    schedule 05.11.2018    source источник


Ответы (1)


Вы можете создать две функции, которые будут отвечать за создание другого типа диаграммы и вызывать их в нужном событии:

function mapChart() {
    Highcharts.mapChart('container', {
        chart: {
            map: 'countries/kw/kw-all'
        },

        title: {
            text: 'Highmaps basic demo'
        },

        subtitle: {
            text: 'Source map: <a href="http://code.highcharts.com/mapdata/countries/kw/kw-all.js">Kuwait</a>'
        },

        mapNavigation: {
            enabled: true,
            buttonOptions: {
                verticalAlign: 'bottom'
            }
        },

        colorAxis: {
            min: 0
        },

        series: [{
            data: data,
            name: 'Random data',
            point: {
                events: {
                    click: function() {
                        columnChart(this.name);
                        document.getElementById("back").style.display = "block"
                    }
                }
            },
            states: {
                hover: {
                    color: '#BADA55'
                }
            },
            dataLabels: {
                enabled: true,
                format: '{point.name}'
            }
        }]
    });

    document.getElementById("back").style.display = "none";
}

function columnChart(name) {
    var data = [1, 2, 3];

    if (name === "Al Jahrah") {
        data = [2, 2, 2];
    }

    Highcharts.chart('container', {
        title: {
            text: name
        },
        series: [{
            type: 'column',
            data: data
        }]
    });
}

mapChart();

Демонстрация в реальном времени: https://jsfiddle.net/BlackLabel/bnsjgt4z/

Ниже вы можете найти другие решения с переходом от карты к диаграмме:

https://www.highcharts.com/maps/demo/rich-info

https://www.highcharts.com/maps/demo/data-class-two-ranges

person ppotaczek    schedule 05.11.2018