mapbox gl 数据驱动样式:"value" 参数有什么作用?
mapbox gl data driven style: What does the "value" parameter do?
我正在根据当前缩放值修改我的图标大小,方法是使用缩放数据来驱动大小。
据我所知,我正在使用 属性 "zoom" 来跟踪缩放值(根据规范这是必需的),在停靠点我设置了每个所需的 "zoom" 值,然后输出该状态的图标大小值(由 0-1 > 3 范围显示)。如果我不包含参数 "value": something 代码将失败。如果我将它全部设置为 1,它工作正常,所以似乎这个值被忽略了。
谁能解释一下它的实际用途?
// Add layer to map populating data from Geojson
map.addLayer({
"id": "seed",
"type": "symbol",
"source": "objects",
"layout": {
"icon-rotation-alignment": "map",
"icon-keep-upright": true,
"icon-rotate": 0,
"icon-image": "{icon}",
"icon-allow-overlap": true,
"icon-size": {
"property": "zoom",
"type": "exponential",
"stops": [
[{ "zoom": 15, "value": 1}, 0.1],
[{ "zoom": 16, "value": 1}, 0.3],
[{ "zoom": 17, "value": 1}, 0.6],
[{ "zoom": 18, "value": 1}, 0.8],
[{ "zoom": 19, "value": 1}, 2],
[{ "zoom": 20, "value": 1}, 3]
]
}
}
});
});
对于@stuffyjoelab 造成的混乱,我们深表歉意!
Mapbox GL 中一共有三种函数:
- 缩放功能 允许地图特征的外观随着地图的缩放级别而改变
- 属性 函数 允许地图特征的外观随其属性而改变。
- Zoom-and-property 函数 允许地图特征的外观随着其属性和缩放而改变。
(There's more info about these in our style spec docs)
I'm using the property "zoom" to track the zoom value
我们将 "property" 定义为 per-feature 元数据,la GeoJSON feature properties。根据这个定义,zoom
不是 属性(除非你的特征上有一个 属性 叫做 zoom
)
如果您通过删除 "property": "zoom"
并将停靠点中的 {zoom, value}
对象替换为数字缩放来切换到缩放函数语法,一切都应该按预期工作。
// Add layer to map populating data from Geojson
map.addLayer({
"id": "seed",
"type": "symbol",
"source": "objects",
"layout": {
"icon-rotation-alignment": "map",
"icon-keep-upright": true,
"icon-rotate": 0,
"icon-image": "{icon}",
"icon-allow-overlap": true,
"icon-size": {
"type": "exponential",
"stops": [
[15, 0.1],
[16, 0.3],
[17, 0.6],
[18, 0.8],
[19, 2],
[20, 3]
]
}
}
});
我正在根据当前缩放值修改我的图标大小,方法是使用缩放数据来驱动大小。
据我所知,我正在使用 属性 "zoom" 来跟踪缩放值(根据规范这是必需的),在停靠点我设置了每个所需的 "zoom" 值,然后输出该状态的图标大小值(由 0-1 > 3 范围显示)。如果我不包含参数 "value": something 代码将失败。如果我将它全部设置为 1,它工作正常,所以似乎这个值被忽略了。
谁能解释一下它的实际用途?
// Add layer to map populating data from Geojson
map.addLayer({
"id": "seed",
"type": "symbol",
"source": "objects",
"layout": {
"icon-rotation-alignment": "map",
"icon-keep-upright": true,
"icon-rotate": 0,
"icon-image": "{icon}",
"icon-allow-overlap": true,
"icon-size": {
"property": "zoom",
"type": "exponential",
"stops": [
[{ "zoom": 15, "value": 1}, 0.1],
[{ "zoom": 16, "value": 1}, 0.3],
[{ "zoom": 17, "value": 1}, 0.6],
[{ "zoom": 18, "value": 1}, 0.8],
[{ "zoom": 19, "value": 1}, 2],
[{ "zoom": 20, "value": 1}, 3]
]
}
}
});
});
对于@stuffyjoelab 造成的混乱,我们深表歉意!
Mapbox GL 中一共有三种函数:
- 缩放功能 允许地图特征的外观随着地图的缩放级别而改变
- 属性 函数 允许地图特征的外观随其属性而改变。
- Zoom-and-property 函数 允许地图特征的外观随着其属性和缩放而改变。
(There's more info about these in our style spec docs)
I'm using the property "zoom" to track the zoom value
我们将 "property" 定义为 per-feature 元数据,la GeoJSON feature properties。根据这个定义,zoom
不是 属性(除非你的特征上有一个 属性 叫做 zoom
)
如果您通过删除 "property": "zoom"
并将停靠点中的 {zoom, value}
对象替换为数字缩放来切换到缩放函数语法,一切都应该按预期工作。
// Add layer to map populating data from Geojson
map.addLayer({
"id": "seed",
"type": "symbol",
"source": "objects",
"layout": {
"icon-rotation-alignment": "map",
"icon-keep-upright": true,
"icon-rotate": 0,
"icon-image": "{icon}",
"icon-allow-overlap": true,
"icon-size": {
"type": "exponential",
"stops": [
[15, 0.1],
[16, 0.3],
[17, 0.6],
[18, 0.8],
[19, 2],
[20, 3]
]
}
}
});