JVectorMap Multimap向下钻取时有不同的样式,我怎样才能改变这种风格?

时间:2016-06-01 16:24:20

标签: javascript jquery css multimap jvectormap

也许在一年前问过here这个问题,但没有提供答案。我想知道如何制作"钻孔"地图与我的主地图具有相同的风格和背景。

var regionStyling9 = {                  // This style is set to the main map's regionStyle
        initial: {
            fill: '#E9E9E9',
            stroke: '#505050',
            "fill-opacity": 1,
            "stroke-width": 1,
            "stroke-opacity": 1
        },
        hover: { fill: "#4DB870" }
    };

    $(function() {
        new jvm.MultiMap({
            container: $('#Chart9Map'),
            maxLevel: 1,
            main: {
                map: 'us_aea_en',
                backgroundColor: '#fff',
                regionStyle: regionStyling9,     // Here I set the top level style to the main map                    
                series: {
                    regions: [{ values: stateMapData, scale: ['#cce2ec', '#006593'], normalizeFunction: 'polynomial' }]
                }
            },
            mapUrlByCode: function(code, multiMap) {
                return '../Scripts/JVectorMap/jquery-jvectormap-data-' +
                    code.toLowerCase() +
                    '-' +
                    multiMap.defaultProjection +
                    '-en.js';
            }
        });
    });

如何影响二级图表的样式,就像我对主图表一样?

根据jVectorMap MultiMap Documentation,只有主地图的配置,钻取地图没有其他对象......

1 个答案:

答案 0 :(得分:0)

我知道你的意思,我也找不到这个信息。库很难处理这个问题,这很奇怪。它是如此精心制作的包装,但在我看来却缺少一些基础知识。 假设您没有使用免费版本,许可证表示您可以修改代码。

打开jquery-jvectormap.js文件(需要美化它)。 在底部,您将看到以下行:

   currentMap.params.container.hide(), that.maps[name] ? that.maps[name].params.container.show() : that.addMap(name, {
        map: name,
        multiMapLevel: currentMap.params.multiMapLevel + 1
    }), that.history.push(that.maps[name]), that.backButton.show()

更改此设置,以便将主地图中的设置传递给子项(因此只需添加3条额外的行):

   currentMap.params.container.hide(), that.maps[name] ? that.maps[name].params.container.show() : that.addMap(name, {
        backgroundColor: that.params.main.backgroundColor,
        series: that.params.main.series,
        onRegionTipShow: that.params.main.onRegionTipShow,
        map: name,
        multiMapLevel: currentMap.params.multiMapLevel + 1