n00*_*00b 3 javascript mapbox mapbox-gl-js
如何在其中添加 Mapbox 表达式,mapboxgl.Marker()如下所示:
"icon-size": ['interpolate', ['linear'], ['zoom'], 10, 1, 15, 0.5]
(我从这里复制了这个表达式:/sf/answers/4272545511/)
标记不支持表达式。它们是 HTML 元素,并且行为完全不同。
你必须按照以下方式伪造它:
zoom事件添加处理程序,以便您可以在地图放大和缩小时进行更新。像这样的东西:
map.on('zoom', () => {
const scalePercent = 1 + (map.getZoom() - 8) * 0.4;
const svgElement = marker.getElement().children[0];
svgElement.style.transform = `scale(${scalePercent})`;
svgElement.style.transformOrigin = 'bottom';
});
Run Code Online (Sandbox Code Playgroud)
Codepen在这里:https://codepen.io/stevebennett/pen/MWyXjmR?editors =1001
| 归档时间: |
|
| 查看次数: |
3148 次 |
| 最近记录: |