我想创建一个地图,我可以提供这样所有可用mapDatas的下拉列表:https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/maps/demo/all-maps
我有我所有的在@ highcharts本地系统/地图收集(https://www.highcharts.com/docs/maps/map-collection)在地图上,我想使用它们,而不是在运行时从https://code.highcharts.com/mapdata下载。
在我的打字稿文件我用下面的进口
import * as Highcharts from "highcharts/highmaps";
import * as HC_DATA from "highcharts/modules/data";
HC_DATA(Highcharts);
在系列中,我提供的属于MapData:
series: [{
mapData: Highcharts.geojson(Highcharts.maps['custom/world']),
name: 'My series',
data: data,
}]
我会在运行时出现以下异常:
NG:///CreationModule/DashboardComponent.ngfactory.js:564错误类型错误:无法读取属性“功能”的未定义在Object.a.geojson
第二个问题:我想所有可用的地图列表,我尝试,因为它在demo/all-maps解释真实访问Highcharts.mapDataIndex,我得到的错误mapDataIndex是不确定的。
请指导我怎样才能解决上述问题,我想我没有正确使用所需要的进口,请指导。
第一个问题是有关地图数据的错误输入。简单Highcharts.maps['custom/world']
是不确定的。您可以导入地图数据,JSON,并通过它来chart.map
财产这样的:
const worldMap = require('@highcharts/map-collection/custom/world.geo.json');
chartOptions = {
chart: {
map: worldMap
},
...
}
第二个问题:我想所有可用的地图列表,我尝试,因为它在演示的解释来访问Highcharts.mapDataIndex /全地图,我得到的错误mapDataIndex是不确定的。
mapDataIndex没有定义,因为它不是Highcharts默认属性,你必须加载它(在本例中就是从这里下载:https://code.highcharts.com/mapdata/index.js?1)。从如何加载highcharts-angular
官方包装的文档检查这样的描述:https://github.com/highcharts/highcharts-angular#to-load-a-wrapper
mapdata.js:
(function (factory) {
if (typeof module === 'object' && module.exports) {
module.exports = factory;
} else {
factory(Highcharts);
}
}(function (Highcharts) {
...
/* map data content here */
...
}));
在一个图表组件:
require('./mapdata')(Highcharts);
演示:
编辑
地图数据可以使用import
也加载:
import mapdata from "./mapdata";
import * as worldMap from '@highcharts/map-collection/custom/world.geo.json';
mapdata(Highcharts);
mapdata.js:
export default function (Highcharts) {
Highcharts.mapDataIndex = {...}
}
演示: