在jvectormap中设置单个区域的样式

时间:2013-04-03 03:57:27

标签: jquery svg maps region jvectormap

SO,

我有一个自定义的jVectorMap,我已成功使用jVectorMap API中的代码更改区域的颜色:

regionStyle: {
      initial: {
      fill: '#5e7073',
      "fill-opacity": 1,
      stroke: 'none',
      "stroke-width": 0,
      "stroke-opacity": 1
      },
      hover: {
      fill: 'black'
      }, 

但我正在尝试单独控制地图的每个区域的填充/悬停属性。有没有人这样做过或者想过如何实现它?我查看了jVectorMap API,但无济于事。

马卡

2 个答案:

答案 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();
相关问题