Highcharts Demo

author(s): Torstein Hønsi

by Geo George

HTML

<script src="https://code.highcharts.com/maps/highmaps.js"></script>
<script src="https://code.highcharts.com/maps/modules/data.js"></script>
<script src="https://code.highcharts.com/maps/modules/exporting.js"></script>
<script src="https://code.highcharts.com/mapdata/custom/world.js"></script>


<div id="container"></div>

<button id="getselectedpoints" disabled>Get selected points</button>

CSS

#container {
    height: 500px;
    min-width: 310px;
    max-width: 800px;
    margin: 0 auto;
}

.loading {
    margin-top: 10em;
    text-align: center;
    color: gray;
}

JavaScript

Highcharts.getJSON('https://cdn.jsdelivr.net/gh/highcharts/[email protected]/samples/data/world-population-density.json', function (data) {
var newdata = [
        {
          //me: "Canada",
          //so-a3": "CAN",
         lat: 54.41647439573804,
          lon: 54.41647439573804-119.51446651884729,
        },
      ];
    // Initialize the chart
    const chart = Highcharts.mapChart('container', {

        title: {
            text: 'Allow point select'
        },

        legend: {
            title: {
                text: 'Population density per km²'
            }
        },

        plotOptions: {
            series: {
            states: {
                hover: {
                    color: '#a4edba'
                },
                select: {
                    color: 'red',
                    borderColor: 'black',
                    dashStyle: 'dot'
                }
            },
                point: {
                    events: {
                        select: function () {
                            const text = 'Selected ' + this.name + ' (' + this.value + '/km²)',
                                chart = this.series.chart;
                            if (!chart.selectedLabel) {
                                chart.selectedLabel = chart.renderer
                                    .label(text, 0, 320)
                                    .add();
                            } else {
                                chart.selectedLabel.attr({
                                    text: text
                                });
                            }
                        },
                        unselect: function () {
                            const text = 'Unselected ' + this.name + ' (' + this.value + '/km²)',
                                chart = this.series.chart;
                            if (!chart.unselectedLabel) {
                                chart.unselectedLabel = chart.renderer
                                  ...