首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HighMaps与drilledDown

HighMaps与drilledDown
EN

Stack Overflow用户
提问于 2016-08-13 08:23:34
回答 1查看 317关注 0票数 1

我在我的应用程序中使用高级地图,启用了钻取功能,对于给出的美国示例数据来说,它工作得很好。

但它不适用于srilanka的数据。有什么问题吗?

这是我的代码:

代码语言:javascript
复制
  $('#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链路

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-13 16:10:42

斯里兰卡的高级地图地图集中不存在钻取数据。如果您向下滚动页面,您可以看到此刻 --只有国家级别以下的国家(例如admin2级别)是加拿大、德国、法国、荷兰、挪威、美国。

单击区域时,小提琴试图从相应的URL检索数据:

代码语言:javascript
复制
mapKey = 'countries/lk/' + e.point.drilldown + '-all',

对斯里兰卡来说,这是失败的,因为每个地区的JS文件都不存在。

高等地图博士中有更多关于创建地图的信息:

Highmap从GeoJSON加载它的地图,这是一个描述地理特征的开放标准。大多数GIS软件支持这种格式作为导出,例如Shapefile或KML导出。阅读API参考中的更多内容,并查看现场演示。 您的地图有三个基本来源:

  1. 利用我们的地图集合。阅读有关地图集合的教程文章即可开始。
  2. 找到一个SVG地图在线,并转换它使用我们的(实验)在线转换器。
  3. 使用SVG编辑器从头创建自己的地图,然后在线转换它们。阅读我们关于高级地图的自定义地图教程。

以及关于高级地图地图集

为了您的方便,Highmap提供了一个免费的地图集合,优化后用于Highmap。对于普通地图,它省去了查找或绘制合适的SVG或GeoJSON地图的麻烦。 对于Admin2,我们只编译了选定的国家,这些映射是从国家文件中创建的,它们具有自己的许可证,在SVG地图和其他格式的文件中指定为元数据。如果您想念您的国家,请与我们联系,我们将设法找到一个合适的形状文件,并生成更多的地图。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38930770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档