JVectorMap:更新图例

时间:2016-12-29 11:01:16

标签: javascript legend jvectormap legend-properties

我正在使用JVectorMap显示带有彩色国家/地区的地图。地图还包括一个图例和一个onRegionTipShow。在我的应用程序中,可以更改地图所基于的值。执行此操作后,应更新地图,包括颜色,图例和tipShow。除了图例的更新外,一切运作良好。传说始终保持不变。

在更新地图之前,我根本不知道如何重置图例。有人可以告诉我各自的方法吗?

地图初始化:

$('#myMap').vectorMap({
  map: 'world_mill',
  backgroundColor: '#FFFFFF',
  borderWidth: 1,
  color: '#D9D9DB',
  regionsSelectable: false,
  markersSelectable: false,
  zoomAnimate: true,
  zoomButtons : true,
  series: {
    regions: [{
      values: myData,
      scale: ['#FFB777', '#054696'],
      normalizeFunction: 'lineal',
      min: jvm.min(myData),
      max: jvm.max(myData),
      legend: { vertical: true }
    }]
  },
  onRegionTipShow: function(e, el, code){
    if(myData[code]) label = myData[code].toString().replace(/\B(?=(\d{3})+(?!\d))/g, ''');
    else label = myData[code];
    el.html(el.html()+' ('+ label +')');
  },
  regionStyle: {
    initial: { fill: '#D9D9DB' },
    selected: { fill: '#EE442B' },
    hover: { 'fill-opacity': 1 }
  },
});
var myMapObj = $('#myMap').vectorMap('get', 'mapObject');
myMapObj.updateSize();

更新功能:

myMapObj.series.regions[0].clear();
myMapObj.series.regions[0].params.min = undefined;
myMapObj.series.regions[0].params.max = undefined;
myMapObj.series.regions[0].scale.minValue = undefined;
myMapObj.series.regions[0].scale.maxValue = undefined;
myMapObj.series.regions[0].setValues(myData);

如您所见,在使用setValues方法更新myMap之前,我将几个方法设置为'undefined'。我认为还有一种重置图例的方法......

1 个答案:

答案 0 :(得分:0)

嗨,我有同样的问题,最终放弃了使用api。相反,我这样做:

document.getElementsByClassName('jvectormap-legend-title')[0].innerHTML = '<div class="jvectormap-legend-title">' + legenda + '</div>';