Highcharts 如何在highmap中移动岛屿
我从西班牙得到了一张包括加那利岛在内的地图,但是这些岛屿太远了,而且地图看起来很小,有没有办法把这些岛屿移到西班牙附近?一些国家的地图。您可以使用Highcharts 如何在highmap中移动岛屿,highcharts,geojson,Highcharts,Geojson,我从西班牙得到了一张包括加那利岛在内的地图,但是这些岛屿太远了,而且地图看起来很小,有没有办法把这些岛屿移到西班牙附近?一些国家的地图。您可以使用点类提供的新增功能将区域移动到位。我们将使用以下(稍加修改的)代码: //将SVG路径偏移x和y Highcharts.Point.prototype.offsetPath=函数(x、y、重画、动画){ var path=this.path | |[], isX=真, i=0; 对于(;i
点
类提供的新增功能将区域移动到位。我们将使用以下(稍加修改的)代码:
//将SVG路径偏移x和y
Highcharts.Point.prototype.offsetPath=函数(x、y、重画、动画){
var path=this.path | |[],
isX=真,
i=0;
对于(;i
移动点。然后,在加载您的西班牙地图后,您可以将这些区域移动到所需的位置。我在这里举了一个例子():
Highcharts.mapChart('container'){
// ...
},功能(图表){
for(设i=0;i
这将使Melilla、Las Palmas、Tenerife和Baleares靠近示例中提供的X和Y值(第一个和第二个参数),以及重绘(第三个参数),但不设置动画(第四个参数)
Highcharts提供的地图。如果在插入中找不到显示加那利岛的现有地图,则必须自己编辑地图。您当前的地图是哪种格式的?它是一个json文件
// Offset an SVG path by x and y
Highcharts.Point.prototype.offsetPath = function (x, y, redraw, animate) {
var path = this.path || [],
isX = true,
i = 0;
for (; i < path.length; ++i) {
if (Highcharts.isNumber(path[i])) {
path[i] += isX ? x : y;
isX = !isX;
}
}
this.update({
dataLabels: {
x: this.series.xAxis.toPixels(x) - this.series.xAxis.toPixels(0),
y: this.series.yAxis.toPixels(y) - this.series.yAxis.toPixels(0)
},
path: path
}, redraw, animate);
};
Highcharts.mapChart('container', {
// ...
}, function(chart) {
for(let i = 0; i < this.series[0].points.length; i++) {
if(this.series[0].points[i]['hc-key'] == 'es-me') { // Melilla
this.series[0].points[i].offsetPath(0, -900, true, false);
} else if(this.series[0].points[i]['hc-key'] == 'es-gc') { // Las Palmas
this.series[0].points[i].offsetPath(-1200, 0, true, false);
} else if(this.series[0].points[i]['hc-key'] == 'es-tf') { // Tenerife
this.series[0].points[i].offsetPath(-1200, 0, true, false);
} else if(this.series[0].points[i]['hc-key'] == 'es-pm') { // Baleares
this.series[0].points[i].offsetPath(-800, 0, true, false);
}
}
});