HighMaps:使用各种数据集更改工具提示上的状态名称

问题描述 投票:0回答:1

我已经根据Highcharts提供的标准地图构建了地图。但是,已对其进行了自定义,以在工具提示上显示两组数据,而不是一组,因此,当一个人单击某个状态时,它们将链接到具有该状态的信息的另一页。我面临的问题是我需要更改州之一的名称。我有执行此操作的代码,但是由于我已经自定义了地图,因此很难使所有内容协同工作。基本上,当我添加用于名称更改的代码时,它会删除工具提示中所有状态的一组数据。任何人都可以帮助我解决这个问题(也许很棒的@ppotaczek :)?具体来说,我需要在工具提示中将Distrito Federal更改为CDMX,同时不要从工具提示中删除两个数据集。

这里是一个jsfiddle:https://jsfiddle.net/sstoker/3cdaqkyx/6/#save

以下是相关的JavaScript代码:


// Prepare demo data
// Data is joined to map using value of 'hc-key' property by default.
// See API docs for 'joinBy' for more info on linking data and map.
 const data = [
                    ['mx-3622', 0.00],
                    ['mx-bc', 5.59],
                    ['mx-bs', 4.05],
                    ['mx-so', 4.77],
                    ['mx-cl', 6.91],
                    ['mx-na', 8.88],
                    ['mx-cm', 8.01],
                    ['mx-qr', 4.87],
                    ['mx-mx', 5.01],
                    ['mx-mo', 0.089],
                    ['mx-df', 8.12],
                    ['mx-qt', 7.32],
                    ['mx-tb', 3.17],
                    ['mx-cs', 1.15],
                    ['mx-nl', 6.88],
                    ['mx-si', 6.64],
                    ['mx-ch', 2.19],
                    ['mx-ve', 0.66],
                    ['mx-za', 8.03],
                    ['mx-ag', 10],
                    ['mx-ja', 3.35],
                    ['mx-mi', 3.91],
                    ['mx-oa', 0.8],
                    ['mx-pu', 1.53],
                    ['mx-gr', 0.0],
                    ['mx-tl', 2.95],
                    ['mx-tm', 5.47],
                    ['mx-co', 9.46],
                    ['mx-yu', 8.62],
                    ['mx-dg', 4.47],
                    ['mx-gj', 8.33],
                    ['mx-sl', 4.35],
                    ['mx-hg', 4.75]
                ];

                const data1 = [
                        ['mx-3622', 0.0],
                        ['mx-bc', 13],
                        ['mx-bs', 21],
                        ['mx-so', 17],
                        ['mx-cl', 10],
                        ['mx-na', 3],
                        ['mx-cm', 8],
                        ['mx-qr', 16],
                        ['mx-mx', 15],
                        ['mx-mo', 31],
                        ['mx-df', 6],
                        ['mx-qt', 9],
                        ['mx-tb', 24],
                        ['mx-cs', 28],
                        ['mx-nl', 11],
                        ['mx-si', 12],
                        ['mx-ch', 26],
                        ['mx-ve', 30],
                        ['mx-za', 7],
                        ['mx-ag', 1],
                        ['mx-ja', 23],
                        ['mx-mi', 22],
                        ['mx-oa', 29],
                        ['mx-pu', 27],
                        ['mx-gr', 32],
                        ['mx-tl', 25],
                        ['mx-tm', 14],
                        ['mx-co', 2],
                        ['mx-yu', 4],
                        ['mx-dg', 19],
                        ['mx-gj', 5],
                        ['mx-sl', 20],
                        ['mx-hg', 18]
                ];  


         data.forEach(function(el, i) {
           el.push(data1[i][1])
          });



// Create the chart
var chart = Highcharts.mapChart('container', {
 chart: {
                      backgroundColor: '#f3f7fa',
                            map: 'countries/mx/mx-all',
                        },

                    title: {
                                text: ''
                        },

                        subtitle: {
                                text: ''
                        },

                legend: {
                title: {
                    text:'<span style="font-size:9.5px"> \< Bajo | Desarrollo democrático | Alto \> </span>',
                                 }
               },



                    plotOptions: { //For point links            
            map: {
              point: {
                events: {
                  click: function() {
                   $('#map1').trigger(this['hc-key']);
                 }
               }
             }
           }
          },                

                exporting: {
                     buttons: {
                   contextButton: {
                     align: 'center',
                     x: 0
                  }
             },
                     chartOptions: {
                        chart: {
                            events: {
                             load: function() {
                          this.renderer.image('http://165.22.82.145/wp-content/uploads/2019/09/IDDMEX-Logo.svg',
                          480, // x
                            335, // y
                          75, // width
                        40, // height
                     ).add();
                         }
                        }
                    }
                    }
                     },


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

                     colorAxis: {
                        min: 0,
                        maxColor: 'blue',
                        stops: [
                             [.0,'#6497b1'],
                             [.249,'#6497b1'],
                             [.25,'#005b96'],
                             [.499,'#005b96'],
                             [.5,' #03396c'],
                             [.749,'#03396c'],
                             [.75,'#011f4b']
                         ]
                    },

        series: [{
            keys: ['hc-key', 'value', 'rank'],
            data: data,
              name: 'Índice 2018',
                 states: {
                  hover: {
                    color: '#f3bbd3'
                }, 
            },
                        dataLabels: {
                                        enabled: false,
                                        format: '{point.name}',
                                }
                        }],


        tooltip: {
              pointFormat: ' {point.name} {point.value} <br>Ranking: {point.rank}'
           },

            });
});

这是一些更改名称的JavaScript代码,但是当我添加第二个数据系列时,它将删除它。


tooltip: {
    pointFormatter: function() {
        if (this['hc-key'] === 'mx-df') {
            return 'CDMX: ' + this.value;
        }

        return this.name + ' ' + this.value;
    }
}
javascript jquery highcharts
1个回答
1
投票

这是解决这个问题的方法。将此代码添加到工具提示对象。

              pointFormatter: function() {
                 var firstRow = (this['hc-key'] === 'mx-df')
                 ? "CDMX"
                 : this.name;
                 firstRow = firstRow + " " + this.value;
                 var secondRow = "Ranking: " + this.rank;
                 return (firstRow + "<br />" + secondRow);  
                }

© www.soinside.com 2019 - 2024. All rights reserved.