首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将chroma.js与单张一起使用?

如何将chroma.js与单张一起使用?
EN

Stack Overflow用户
提问于 2017-07-13 22:07:03
回答 1查看 356关注 0票数 1

我使用leaflet生成多边形,然后像这样使用chroma.js

代码语言:javascript
复制
function style(feature) {
    return {
        weight: 2,
        opacity: 1,
        color: 'white',
        dashArray: '3',
        fillOpacity: 0.7,
        fillColor: chroma.scale(['#fafa6e','#2A4858']).mode('lch').colors(6)
    };
}

var geojson = L.geoJson(statesData, {
    style: style,
}).addTo(map);

为什么所有多边形只有一种填充颜色,黑色,而不是一系列颜色?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-05 23:03:27

您正在将fillColor设置为颜色列表。您需要根据feature的属性选择特定的颜色。

这是可行的(基于其中一个official Leaflet demos)。

代码语言:javascript
复制
var states = [{
    "type": "Feature",
    "properties": {"color_id": 1},
    "geometry": {
        "type": "Polygon",
        "coordinates": [[
            [-104.05, 48.99],
            [-97.22,  48.98],
            [-96.58,  45.94],
            [-104.03, 45.94],
            [-104.05, 48.99]
        ]]
    }
}, {
    "type": "Feature",
    "properties": {"color_id": 2},
    "geometry": {
        "type": "Polygon",
        "coordinates": [[
            [-109.05, 41.00],
            [-102.06, 40.99],
            [-102.03, 36.99],
            [-109.04, 36.99],
            [-109.05, 41.00]
        ]]
    }
}];

colors = chroma.scale(['#fafa6e','#2A4858']).mode('lch').colors(6)

function style(feature) {
    return {
        weight: 2,
        opacity: 1,
        color: 'white',
        dashArray: '3',
        fillOpacity: 0.7,
        fillColor: colors[feature.properties.color_id]
    };
}

layer = L.geoJSON(states, {style: style}).addTo(map);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45083084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档