我在我的项目中使用这个angular-highcharts模块[https://github.com/cebor/angular-highcharts/]
并添加了以下代码显示地图(印度)的代码
在app.module.ts
import { ChartModule, HIGHCHARTS_MODULES } from 'angular-highcharts';
import * as drilldown from 'highcharts/modules/drilldown.src.js';
import * as highmaps from 'highcharts/modules/map.src';
import * as exporting from 'highcharts/modules/exporting.src';
import { BarChartComponent } from './components/bar-chart/bar-
chart.component';
import { MultiChartComponent } from './components/multi-chart/multi-
chart.component';
import { MapChartComponent } from './components/map-chart/map-
chart.component';
export function highchartModules() {
return [drilldown, highmaps, exporting];
}
@NgModule({
imports: [
CommonModule,
DashboardRoutesModule,
NgbModule,
SharedModule,
ChartModule
],
declarations: [DashboardComponent, BarChartComponent,
MultiChartComponent, MapChartComponent],
providers: [{
provide: HIGHCHARTS_MODULES, useFactory: highchartModules
}]
})
export class DashboardModule { }
在我的组件map-chart.component.ts
中 import { Component, OnInit, AfterViewInit } from '@angular/core';
import * as Highcharts from 'highcharts/highmaps';
@Component({
selector: 'app-map-chart',
templateUrl: './map-chart.component.html',
styleUrls: ['./map-chart.component.scss']
})
export class MapChartComponent implements OnInit {
mapChart: MapChart;
constructor() {
this.mapChart = new MapChart({
series: [{
data: [{
'hc-key': 'in-py',
'value': 0
}, {
'hc-key': 'in-ld',
'value': 1
}, {
'hc-key': 'in-wb',
'value': 2
}, {
'hc-key': 'in-or',
'value': 3
}, {
'hc-key': 'in-br',
'value': 4
}, {
'hc-key': 'in-sk',
'value': 5
}, {
'hc-key': 'in-ct',
'value': 6
}, {
'hc-key': 'in-tn',
'value': 7
}, {
'hc-key': 'in-mp',
'value': 8
}, {
'hc-key': 'in-2984',
'value': 9
}, {
'hc-key': 'in-ga',
'value': 10
}, {
'hc-key': 'in-nl',
'value': 11
}, {
'hc-key': 'in-mn',
'value': 12
}, {
'hc-key': 'in-ar',
'value': 13
}, {
'hc-key': 'in-mz',
'value': 14
}, {
'hc-key': 'in-tr',
'value': 15
}, {
'hc-key': 'in-3464',
'value': 16
}, {
'hc-key': 'in-dl',
'value': 17
}, {
'hc-key': 'in-hr',
'value': 18
}, {
'hc-key': 'in-ch',
'value': 19
}, {
'hc-key': 'in-hp',
'value': 20
}, {
'hc-key': 'in-jk',
'value': 21
}, {
'hc-key': 'in-kl',
'value': 22
}, {
'hc-key': 'in-ka',
'value': 23
}, {
'hc-key': 'in-dn',
'value': 24
}, {
'hc-key': 'in-mh',
'value': 25
}, {
'hc-key': 'in-as',
'value': 26
}, {
'hc-key': 'in-ap',
'value': 27
}, {
'hc-key': 'in-ml',
'value': 28
}, {
'hc-key': 'in-pb',
'value': 29
}, {
'hc-key': 'in-rj',
'value': 30
}, {
'hc-key': 'in-up',
'value': 31
}, {
'hc-key': 'in-ut',
'value': 32
}, {
'value': 33
}],
joinBy: 'hc-key',
name: 'Random data',
states: {
hover: {
color: '#BADA55'
}
},
dataLabels: {
enabled: true,
format: '{point.name}'
}
},
{
type: 'mappoint',
data: [{
name: 'Chennai',
x: 3354,
y: -828
}]
}],
chart: {
map: 'countries/in/in-all'
},
title: {
text: 'Highmaps basic demo'
},
subtitle: {
text: 'Source map: <a href="http://code.highcharts.com/mapdata/countries/in/in-all.js">India</a>'
},
mapNavigation: {
enabled: true,
buttonOptions: {
verticalAlign: 'bottom'
}
},
colorAxis: {
min: 0
}
});
}
ngOnInit() {
}
}
和map-chart.component.html
<div [chart]="mapChart"></div>
但是我的图表没有显示在页面上,甚至没有任何错误。
如果我是console.log(this.mapChart),那么在其中我得到系列null。
这里究竟造成了什么问题。
答案 0 :(得分:0)
我终于找到了解决方案,因为我将mapData键的值设置为json对象
我从这个链接复制https://code.highcharts.com/mapdata/
(这里复制geoJson文件的数据,这是各自的地图数据
您想要的州/国家。现在,图表对象将如下所示,
{
series: [{
data: this.mapChartItem.data,
mapData: this.mapDataJson,
joinBy: 'hc-key',
name: 'Orders For',
states: {
hover: {
color: '#BADA55'
}
},
dataLabels: {
enabled: true,
format: '{point.name}'
}
}
}
这里this.mapDataJson将是geoJson文件数据的数据。