Mapbox中GeoJSON字符串类型visits转数值实现动态圆半径
解决Mapbox中字符串类型字段转数值实现动态圆半径的问题
嘿,这问题我之前处理过!核心原因就是你说的——GeoJSON上传后visits字段变成了字符串,Mapbox的数学表达式(比如除法、平方根)只能对数值类型生效,所以所有圆大小才会一致。
你只需要用Mapbox Style Spec里的to-number表达式把字符串转成数值类型就行,修改后的circle-radius代码如下:
'circle-radius': ["sqrt", ["/", ["to-number", ["get", "visits"]], 10000] ]
简单解释下:
["to-number", ["get", "visits"]]会把原本字符串类型的访问次数转换成数值,这样后续的除法/和平方根sqrt运算就能正常计算每个点的对应半径了。- 如果你担心有些
visits字段可能不是合法数字(比如空值或者非数字字符串),还可以给to-number加个默认值,比如:
这样遇到非法值时会用0替代,避免样式出错。["to-number", ["get", "visits"], 0]
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

