Mapbox GL JS在矢量瓦片的渲染方面有独特的优势,可以支持动态的样式,支持字体切片,快速加载各种字体。使用起来十分方便,但是在很长的一段时间内,经常遇到出现大量“Unimplemented type: 7”的控制台错误提示,也看不出来是什么原因,并且无法定位错误发生原因。
可能这种情况,不影响使用,地图还能正常显示,但是控制台有这么多错误,总是不好。不过最近终于找到了问题原因与解决办法。
问题出现场景
在使用的Mapbox GL JS加载GeoJson并进行地图标注、文字展示时,文字不显示,并且控制台出现了大量Unimplemented type: 7
的错误。我这边的字体是自己使用fontnik工具切片生成的,并不是官网的字体。
问题原因
经过最终测试验证发现,是fontnik字体切片工具的版本与Mapbox GL JS相差太多引起的。我使用Mapbox GL JS是最新版本,fontnik还是五六年之前的版本,导致无法正常使用字体。
解决办法
按照https://blog.csdn.net/GISuuser/article/details/130960921介绍的方式,部署最新版的fontnik,然后进行字体切片。将新生成的字体切片发布,同样的Mapbox GL JS代码运行测试,字体正常显示,也没有出现Unimplemented type: 7
的错误信息。