首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向量层属性不会在函数调用中加载

向量层属性不会在函数调用中加载
EN

Stack Overflow用户
提问于 2020-09-03 22:29:38
回答 1查看 190关注 0票数 0

使用Leaflet.VectorGrid I在传单地图上加载向量块。我试图根据接收到的瓷砖值对瓷砖进行样式化,但是函数options.vectorTileLayerStyles不加载。代码示例:

代码语言:javascript
复制
function getColor(val) {
    return val > 85 ? '#2172ff':
           val >= 75 ? '#42baff':
           val >= 50 ? '#a8e8ff':
           val >= 25 ? '#ffcea8':
           val >= 1 ? '#fc9803':
                        '#fc0303';
}

var options = {
    interactive: true,
    maxNativeZoom: 15,
    fetchOptions: {
        headers: { 'Authorization': 'Basic ' + key }
    }
};

//Doesn't get used, althought it should based on the layer's constructor definition
options.vectorTileLayerStyles = function(properties){
    var val = properties.val;
    return {
        mountains: {
            radius: 1,
            weight: 1,
            fillOpacity: 1,
            fill: true,
            fillColor: getColor(val)
        }
    }
}

layer = L.vectorGrid.protobuf(url, options).addTo(leafletMap);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-04 07:47:54

选项必须是一个对象,而不是一个函数:

vectorTileLayerStyles对象 一种数据结构,包含矢量特征的初始符号化定义。

可以用函数进行样式设计。

图层样式可以是:

  • 一组L.Path选项
  • 一组L.Path选项数组
  • 返回一组L.Path选项的函数
  • 一个函数,它分别返回点、线和多边形样式的一组L.Path选项。

尝试传递一个为mountains层定义函数的对象,如下所示

代码语言:javascript
复制
options.vectorTileLayerStyles = {
    mountains: function(properties) {
        var val = properties.val;
        return {
            radius: 1,
            weight: 1,
            fillOpacity: 1,
            fill: true,
            fillColor: getColor(val)
        };
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63732473

复制
相关文章

相似问题

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