2

我正在使用 jVectorMap v1.1,并且我有这段相关的代码:

var america = "#d84148";
var europe = "#0060d0";
var africa = "#44984d";
var asia = "#e3a430";
var oceania = "#2ecdd0";

series: {
    regions: [{
        values: data['colours'],
        scale: {
            "America" : america,
            "Europe" : europe,
            "Africa" : africa,
            "Asia" : asia,
            "Oceania" : oceania
        },
        normalizeFunction: 'linear',
        attribute: 'fill'
    }]
}

我得到的矢量数据是来自 naturalearth.com 的 world_mill_en,它包含每个国家的 1px 分隔,作为该国家的边界​​。我正在构建的应用程序必须显示整个大陆,因此不允许有边界。

Onattribute我只能设置fillorstroke作为参数,我可以在使用时为边框设置纯色fill

我想知道是否可以同时使用fillANDstroke作为属性。或者,如果有一种方法可以将区域的笔画设置为与其相应区域的颜色相同。IE。

if (stroke == "none") 
{
    stroke = "that region's colour"
}
4

1 回答 1

2

在搜索了各种示例后,我在此链接上找到了我的解决方案:

https://github.com/bjornd/jvectormap/blob/master/tests/markers.html

我需要做的就是:

var america = "#d84148";
var europe = "#0060d0";
var africa = "#44984d";
var asia = "#e3a430";
var oceania = "#2ecdd0";

series: {
    regions: [{
        values: data['colours'],
        scale: {
            "America" : america,
            "Europe" : europe,
            "Africa" : africa,
            "Asia" : asia,
            "Oceania" : oceania
        },
        normalizeFunction: 'linear',
        attribute: 'fill'
    }, {
        values: data['colours'],
        scale: {
            "America" : america,
            "Europe" : europe,
            "Africa" : africa,
            "Asia" : asia,
            "Oceania" : oceania
        },
        normalizeFunction: 'linear',
        attribute: 'stroke'
    }]
}

就这样,问题解决了。复制区域数组内的整个部分,包括大括号,将填充更改为描边。

于 2012-11-13T09:40:52.847 回答