我有一个jQuery矢量图定义如下:
<div id="worldMap" style="width:800px;height:550px"></div>
在JS onReady
函数中:
$('#worldMap').vectorMap({
map: 'world_en',
backgroundColor: '#a5bfdd',
color: '#f4f3f0',
hoverColor: '#0000ff',
hoverOpacity: null,
selectedColor: '#666666',
attribute: 'fill',
enableZoom: true,
showTooltip: true,
values: sample_data,
scaleColors: ['#ffffff', '#a00000'],
normalizeFunction: 'polynomial',
onRegionClick: function(element,code,region) {
displayInfo(code,region);
}
});
我设置一个计时器,每五分钟一次,以更新地图数据。它调用的函数是:
function updateMap() {
$.getJSON('docs/testdata.json',function(data) {
var map=$("#worldMap").vectorMap('get','mapObject');
map.series.region[0].setValues(data);
});
}
地图在浏览器中正确显示所有数据点。调用updateMap()
时会出现问题。它无法获取mapObject
(始终为undefined
)。认为这是某种时间问题,我在var map=$(...
初始化地图中的定义之后立即将onready
行移到了地图,而MAP仍然是undefined
。
答案 0 :(得分:3)
另外,试试:
var obj = $('#world-map .jvectormap-container').data('mapObject');
然后:
obj.series.region[0].setValues(data);
答案 1 :(得分:0)
我有同样的问题
我用它来解决:
map = new jvm.Map({ container: jQuery('#world-map'), map: "map", regionsSelectable: true, regionsSelectableOne: true, backgroundColor: 'transparent', zoomMax: 1, zoomMin: 1, zoomOnScroll: false });
map.clearSelectedRegions();