我正在使用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'。我认为还有一种重置图例的方法......
答案 0 :(得分:0)
嗨,我有同样的问题,最终放弃了使用api。相反,我这样做:
document.getElementsByClassName('jvectormap-legend-title')[0].innerHTML = '<div class="jvectormap-legend-title">' + legenda + '</div>';