Mapbox Sheet Mapper插件是否仅将Google Sheet列数据读取为字符串?
问题原因确认
你遇到的类型报错确实是因为Sheet Mapper插件默认将Google Sheet的所有列数据识别为字符串类型导致的。即便你在Google Sheet中设置了列的数字格式,这类格式仅属于表格的显示规则,Sheet Mapper对接Google Sheets API拉取数据时,默认不会做自动的数值类型转换,所有值都会以字符串格式传入Mapbox渲染引擎,才会触发step表达式的类型校验错误。
可用解决方案
- 方案1:修改Mapbox表达式,直接在表达式内完成类型转换
用to-number表达式包裹原有的字段取值逻辑,修改后的circle-color配置如下:
该方案无需调整数据源或插件配置,改完即可生效。"circle-color": [ "step", ["to-number", ["get", "Sales Value"]], "#51bbd6", 100, "#f1f075", 2000, "#f28cb1" ] - 方案2:修改Sheet Mapper的字段映射配置
进入Sheet Mapper的数据源导入设置页,找到「Sales Value」字段的类型配置项,手动将其默认的String类型修改为Number类型,重新拉取数据后即可正常识别数值。 - 方案3:Google Sheet侧预处理
你可以在「Sales Value」列旁新增辅助列,用VALUE()函数把原列的数值强制转换为纯数值格式,再将辅助列作为Mapbox样式的取值字段即可。
内容的提问来源于stack exchange,提问作者Thameside Media
相关产品推荐
相关产品推荐

