如何在mapboxgl.Marker()
中添加Mapbox表达式,如下所示:"icon-size": ['interpolate', ['linear'], ['zoom'], 10, 1, 15, 0.5]
(我从这里复制了这个表达式:https://stackoverflow.com/a/61036364/5220885)
如何在mapboxgl.Marker()
中添加Mapbox表达式,如下所示:"icon-size": ['interpolate', ['linear'], ['zoom'], 10, 1, 15, 0.5]
(我从这里复制了这个表达式:https://stackoverflow.com/a/61036364/5220885)
3条答案
按热度按时间byqmnocz1#
标记不支持表达式。它们是HTML元素,并且行为完全不同。
你必须沿着这些路线伪造它:
1.向Map的
zoom
事件添加一个处理程序,以便在Map放大和缩小时进行更新。1.使用常规的旧JavaScript计算大小。
1.使用CSS应用该大小。
大概是这样的:
Codepen在这里:https://codepen.io/stevebennett/pen/MWyXjmR?editors=1001
n6lpvg4x2#
正如@SteveBennett所说:
标记不支持表达式。它们是HTML元素,并且行为完全不同。
假设你使用html原生元素作为标记,要有一些类并在样式标记中使用它们,你可以在添加标记到map后使用以下代码:
ovfsdjhp3#
如果你有一个mapboxgl.Markers的列表,你可以像这样得到HTMLElement:
由于
el
变量中没有html元素,因此必须使用getElemet()来获取相应的元素