【发布时间】:2019-09-09 04:57:19
【问题描述】:
我正在尝试创建一个在地图上呈现圆圈的网络应用程序。如果numUsers 属性>= 1,则圆圈为绿色;如果numUsers 属性为0,则圆圈为红色(默认值为0)。
下面是我的数据源的结构:
{
"type":"FeatureCollection",
"features":[
{
"type": "Feature",
"id": 0,
"geometry":{
"type":"Point",
"coordinates":[
1.49129,
42.46372
]
},
"properties": {
"numUsers":0
}
}
]
}
所有圆圈最初都呈现为红色,这是我想要的,因为每个圆圈的 numUsers 属性最初设置为 0。但是,我想通过设置 numUsers 将其中一个圆圈更改为绿色属性为 1。我正在尝试使用 setFeatureState,但它不会将圆圈的颜色更改为绿色:
map.setFeatureState({source: "cities", id : 0}, {numUsers : 1});
下面是我的渲染JS代码:
map.on('style.load', function (e) {
map.addSource('cities', {
"type": "geojson",
"data": "cities.geojson",
"cluster": true,
"clusterMaxZoom": 14,
"clusterRadius": 80
});
map.addLayer({
"id": "cities",
"type": "circle",
"source": "cities",
"paint": {
"circle-color": {
property: 'numUsers',
stops: [
[0, '#ff6666'],
[1, '#33ff33']
]
}
}
}, 'settlement-label');
});
【问题讨论】:
标签: javascript jquery mapbox mapbox-gl-js