我在我的应用程序中使用高级地图,启用了钻取功能,对于给出的美国示例数据来说,它工作得很好。
但它不适用于srilanka的数据。有什么问题吗?
这是我的代码:
$('#container').highcharts('Map', {
chart : {
events: {
drilldown: function (e) {
if (!e.seriesOptions) {
var chart = this,
mapKey = 'countries/lk/' + e.point.drilldown + '-all',
// Handle error, the timeout is cleared on success
fail = setTimeout(function () {
if (!Highcharts.maps[mapKey]) {
chart.showLoading('<i class="icon-frown"></i> Failed loading ' + e.point.name);
fail = setTimeout(function () {
chart.hideLoading();
}, 1000);
}
}, 3000);
// Show the spinner
chart.showLoading('<i class="icon-spinner icon-spin icon-3x"></i>'); // Font Awesome spinner
// Load the drilldown map
$.getScript('https://code.highcharts.com/mapdata/' + mapKey + '.js', function () {
data = Highcharts.geojson(Highcharts.maps[mapKey]);
// Set a non-random bogus value
$.each(data, function (i) {
this.value = i;
console.log(i);
});
// Hide loading and add series
chart.hideLoading();
clearTimeout(fail);
chart.addSeriesAsDrilldown(e.point, {
name: e.point.name,
data: data,
dataLabels: {
enabled: true,
format: '{point.name}'
}
});
});
}
this.setTitle(null, { text: e.point.name });
},
drillup: function () {
this.setTitle(null, { text: 'Sri Lanka' });
}
}
}JSFiddle链路
发布于 2016-08-13 16:10:42
斯里兰卡的高级地图地图集中不存在钻取数据。如果您向下滚动页面,您可以看到此刻 --只有国家级别以下的国家(例如admin2级别)是加拿大、德国、法国、荷兰、挪威、美国。
单击区域时,小提琴试图从相应的URL检索数据:
mapKey = 'countries/lk/' + e.point.drilldown + '-all',对斯里兰卡来说,这是失败的,因为每个地区的JS文件都不存在。
在高等地图博士中有更多关于创建地图的信息:
Highmap从GeoJSON加载它的地图,这是一个描述地理特征的开放标准。大多数GIS软件支持这种格式作为导出,例如Shapefile或KML导出。阅读API参考中的更多内容,并查看现场演示。 您的地图有三个基本来源:
以及关于高级地图地图集
为了您的方便,Highmap提供了一个免费的地图集合,优化后用于Highmap。对于普通地图,它省去了查找或绘制合适的SVG或GeoJSON地图的麻烦。 对于Admin2,我们只编译了选定的国家,这些映射是从国家文件中创建的,它们具有自己的许可证,在SVG地图和其他格式的文件中指定为元数据。如果您想念您的国家,请与我们联系,我们将设法找到一个合适的形状文件,并生成更多的地图。
https://stackoverflow.com/questions/38930770
复制相似问题