react使用百度地图api
官网查,网上搜,看了半天还是踩了坑。
官网里javascript文档有四个,都在一个页面上,名字不一样,但分别点击进入之后长得几乎都一样。
JavaScript API v2.0
JavaScript API GL
JavaScript API v3.0
JavaScript API Lite
最开始的时候随便进入了那个JavaScript API GL开始学。
又上网查了react怎么引用百度地图,用里面的例程开始试验。然后就各种乱。莫名其妙的乱。
官网的例程也不好使。有的能用,有的不能用。
在坑里转了好久才发现问题在哪里。
网上搜的例程用的是JavaScript API v2.0,我在官网看的是JavaScript API GL。它们太像了。
在index.html里面引入的时候,我按官网上的JavaScript API GL引入写了
<script type="text/javascript" src="//api.map.baidu.com/api?v=1.0&type=webgl&ak=密钥"></script>
而JavaScript API v2.0的引用调用应该是
<script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=密钥"></script>
就是多了这个&type=webgl,然后就都不一样了。那个v=1.0和v=2.0没关系,写哪个都不影响。
如果是API v2.0,webpack.config.js文件里应该加入
externals:{
'BMap':'BMap',
}
API GL 则是
externals:{
'BMapGL':'BMapGL',
}
然后在用到地图的模块导入名字即可。
这些不同版本的api包含的类,方法什么的名字都一样,但具体使用起来就不一样了,一些基本的东西通用,具体细节的有很多不通用。