Highmaps上的数据标签显示在底部到顶部

时间:2017-03-29 08:53:58

标签: svg highcharts

我遇到了一个与Highmaps有关的奇怪问题。我有一张Highmaps正确显示的geojson地图。鼠标悬停工作和工具提示出现在正确的位置。但是,当我打开数据标签时,它们会显示为颠倒。也就是说,应该出现在地图底部附近的标签(以其省为中心)现在显示在顶部附近,反之亦然。 数据标签'坐标系似乎是相反的。

Highmaps data labels

在图像中,标签" 603863"应该出现在最底层的省份,而" 1966085"应该出现在最顶级的省份。

我的geojson数据样本:

var provincePolygons = {
  "type":"FeatureCollection",
  "features":[
    {"type":"Feature",
     "properties":{
       "id":"05","name":"Tete"},
       "geometry":{"type":"Polygon",
          "coordinates":[[
          [32.636,-14.204],
          [33.245,-13.998],
          [33.299,-14.032],
          [33.300,-14.146],
          [33.385,-14.237],
          [33.478,-14.404],
          [33.544,-14.434],
          [33.627,-14.528],
          [33.640,-14.594],
          [33.718,-14.572],
          ...

我尝试过的事情:

  • 数据标签是SVG元素。我认为围绕CSS规则可能会影响他们的位置,但由于使用类似转换的其他CSS元素位于正确的位置,这似乎不是问题所在。

  • 经度是负值。我试着通过在每个值上加上+100来使它们变为正数,只是为了看看负值是否应该受到责备,但事实并非如此。这是一个很长的镜头。

  • 我自然而然地使用了数据标签的API设置,但似乎没有一个开关会影响其从上到下的位置。我还认为保持默认值不变应导致正确放置。

  • 我想知道数据标签是怎样的'位置由Highmaps计算。也许Highmaps找不到每个多边形的中心并需要提示?我为geojson中的功能添加了纬度和经度值,但这没有帮助。我之前在类似情况下也使用过Highmaps而无需添加此类数据。

有一个名为" highcharts-data-labels"在生成的SVG中。我正在考虑翻转它的坐标系统,以某种方式将数据标签移动到正确的位置,但这对于应该正常工作的东西会进行复杂的干预。

请注意我使用的是ng-highcharts。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

对于遇到此问题的其他人,我可以通过添加属性' chartType'来解决这个问题。到我的配置对象。 highcharts-ng图书馆的文档提到了这个用于创建高价图表的文档,但是对于高图只是没有说出任何关于它的信息。 lib默认为' chart',但你需要输入chartType:' map',它应该解决问题:)

这里是来自highcharts-ng libary的相关代码,其中config是你的图表对象:

var chartTypeMap = {
  'stock': 'StockChart',
  'map':   'Map',
  'chart': 'Chart'
};

function getChartType(config) {
  if (config === undefined || config.chartType === undefined) return 'Chart';
  return chartTypeMap[('' + config.chartType).toLowerCase()];
}

希望这有帮助!