总结一下这些年玩mapbox碰到的一些“坑”希望你们少走

1.方法和接口大多数只能在地图加载完成之后才能调用。比如你加载一个图层你肯定要调用map.addLayer()但是这个方法你必须在map.on('load',(e)=>{})里。我这里指的是同步调用的时候,就是指页面一加载的时候就执行某些方法的时候,你只能等地图加载完才能执行,这真的很坑。不过可能官方也意识到了这个问题,它提供了一个检测地图是否加载完成的值,你可以通过:

const isLoaded = map.loaded();

isLoaded这个变量的值来判断当前是否地图加载完成了,如果完成了你再执行你的代码,如果没加载完成你就等你的地图加载完成了再执行,最关键的是这个变量的值的获取也是一次性的。。。。他并没有做监听,也就是每次你用的时候现用现调取,如果地图没加载完你还是什么也不能做,换句话说,地图加载完了他不会自动更新这个状态告诉你地图加载完了,而是你一遍一遍的去获取这个值去判断这个值。就像是快递小哥给你送快递,也不知道送没送到反正也不通知你,你打一遍电话问他说没送到,你再打一遍还是没送到,过了几天你又打了一遍问,他说他早就给你送到了,所以不监听不自动更新这个状态你也没办法自动获取到这个状态。这也真的是坑的不行。。。。 

2.图标类的图层有个属性叫做icon-all

你可能感兴趣的:(感想与杂谈,css,css3,html5)