首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >mapbox是否可以将变量作为画图属性值?

mapbox是否可以将变量作为画图属性值?
EN

Stack Overflow用户
提问于 2018-09-20 01:51:10
回答 1查看 854关注 0票数 1

假设我有一个zoom事件,它更新了我在地图上缩放的当前值:

代码语言:javascript
复制
var map_zoom = 8
//Some more code to set up the map
map.on('zoom', function() {
        map_zoom = map.getZoom();
}

现在,如果我有一个像这样画圆的层:

代码语言:javascript
复制
map.addLayer({
        'id': 'population',
        'type': 'circle',
        'source': 'data',
        'paint': {
            'circle-radius': map_zoom,
            'circle-color': 'rgba(252,141,98,1)'

});

还有一个像这样画圆圈的图层:

代码语言:javascript
复制
map.addLayer({
            'id': 'population',
            'type': 'circle',
            'source': 'data',
            'paint': {
                'circle-color': 'rgba(252,141,98,1)'

    });

这两者之间的区别是什么?我已经在我的示例代码中添加了一个onClick事件来获取各个圆的画图属性,但似乎在这两种情况下,'circle-radius'都是一个固定值。也就是说,即使在我第一次将其设置为依赖于随每个缩放级别更新的变量时,它的值也是固定的,即使在不同的缩放级别下也是如此。这正常吗?

mapbox的表达式是动态修改图层或某些画图属性值的唯一方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-20 08:27:33

您可以通过更改要素的属性(更改源)或使用setPaintProperty方法来更改绘制属性的行为:

代码语言:javascript
复制
map.on('zoom', function() {
  var map_zoom = map.getZoom() * 5;
  map.setPaintProperty('total', 'circle-radius', map_zoom);
})

[ https://jsfiddle.net/pdoa7kLw/ ]

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52411595

复制
相关文章

相似问题

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