有没有办法在Mapbox GL JS的一个属性函数中使用多个属性?在CartoCSS中,我将执行类似以下操作:
.states {
[name="California"] {
"polygon-fill": "blue"
},
[name_abbrev="WA"] {
"polygon-fill": "green"
}
}在Mapbox GL JS中,我似乎可以根据属性name -或- name_abbrev设置fill-color的样式,但不能将这两个属性的组合设置为样式。例如:
'fill-color': {
'property': 'name',
'type': 'categorical',
'stops': [
['California', 'blue']
]
},
'fill-color': {
'property': 'name_abbrev',
'type': 'categorical',
'stops': [
['WA', 'green']
]
}这将导致第二个fill-color覆盖第一个,加利福尼亚州将简单地为绿色。
发布于 2017-03-16 02:09:11
Mapbox GL不支持基于一个图层中的多个特性设置样式。如果您的推理是并非所有要素都具有某个图层/某些要素需要使用回退属性,则可以重新处理数据以将您想要设置样式的属性合并到一个图层中,或者您可以创建两个图层并使用过滤器来分隔要素:
{
... layer metadata (id, source, source-layer, type, etc) ...
'filter': ['has', 'name'],
'paint': {
'fill-color': {
'property': 'name',
'type': 'categorical',
'stops': [
['California', 'blue']
]
}
}
},
{
... layer metadata (id, source, source-layer, type, etc) ...
'filter': ['!has', 'name'],
'paint': {
'fill-color': {
'property': 'name_abbrev',
'type': 'categorical',
'stops': [
['WA', 'green']
]
}
}
}https://stackoverflow.com/questions/42815226
复制相似问题