SO,
我有一个自定义的jVectorMap,我已成功使用jVectorMap API中的代码更改区域的颜色:
regionStyle: {
initial: {
fill: '#5e7073',
"fill-opacity": 1,
stroke: 'none',
"stroke-width": 0,
"stroke-opacity": 1
},
hover: {
fill: 'black'
},
但我正在尝试单独控制地图的每个区域的填充/悬停属性。有没有人这样做过或者想过如何实现它?我查看了jVectorMap API,但无济于事。
马卡
答案 0 :(得分:14)
首先,您需要知道要更改的区域的代码。您从正在使用的地图文件中获取这些内容。以下示例适用于美国地图。
要更改填充,您可以在创建地图时自定义区域:
regionStyle: {
//...
},
series: {
regions: [{
values: {
'US-CA': '#3e9d01',
'US-WA': '#4b93c1',
'US-TX': '#c1a14b'
},
attribute: 'fill'
}]
}
或者您可以动态自定义它们(并且上面的“值”参数不是必需的):
$(function(){
var map = $('#map').vectorMap('get', 'mapObject');
map.series.regions[0].setValues({
'US-CA': '#3e9d01'
});
});
答案 1 :(得分:1)
我在jquery-jvectormap-1.1.1.js中添加了一个自定义方法
检查http://pastebin.com/MSt94XuH
中的所有脚本setSelectedRegionStyle : function (r,c) {
return this.regions[r].element.style.selected.fill = c;
},
您需要参考地图:
map = $("#world-map-gdp").vectorMap('get', 'mapObject');
并为每个国家/地区设置自定义样式:
map.setSelectedRegionStyle('IT', '#b2c9cb');
map.setSelectedRegionStyle('AT', '#b2c9cb');
map.setSelectedRegionStyle('BE', '#b2c9cb');
如果您需要清除所有样式,请使用:
map.clearSelectedRegions();