我正在尝试使用mapbox-gl创建一个等值区域地图。在示例等值区域图中,它们看起来像是根据要素的属性设置要素的绘制填充颜色。有没有办法通过访问地图来设置颜色?
即。我在每个名为id的要素属性中都使用唯一ID。我还有一个json,它使用一个值映射每个id,并希望访问这些值来设置颜色。
这可能吗?或者我是否仅限于能够访问要素属性中的值?
答案 0 :(得分:4)
我不完全确定我是否正确理解了你的问题。但我认为你想要实现的目标可以通过expressions完成:
n
请参阅const geojson = {
type: 'FeatureCollection',
features: [
{
type: 'Feature',
properties: {
id: 'foo'
},
geometry: {
/* */
}
}
]
};
const values = {
foo: 'green',
bar: 'red',
baz: 'blue'
};
map.addLayer({
// ...
paint: {
'fill-color': [
[
'get',
// get the id property and use it as a key into "values"
['get', 'id'],
values
]
]
}
});
表达式:https://www.mapbox.com/mapbox-gl-js/style-spec#expressions-get
答案 1 :(得分:2)