百度地图 JSAPI 当前最新版本为 4.0 。本文适用于需要将接入了地图 JSAPI 2.0、3.0、GL版本的地图应用升级到 4.0 的开发者阅读,我们建议开发者按照以下步骤对代码进行少许修改来升级 JSAPI 的版本,以便获得最佳的开发体验和后续服务支持。
JSAPI 4.0 版本兼容了 JSAPI 2.0、3.0 版本的BMap命名空间,也兼容了 JSAPI GL 版本的BMapGL命名空间,对于不同版本来源均能做到向前兼容。开发者可以通过声明升级前的版本,让 API 的升级行为更平滑、无感知。
如果你的现有版本是2.0版本或者3.0版本,都可以参考这一章来升级到4.0版本。
升级后沿用原有的BMap命名空间,API向前兼容,渲染方式由栅格图升级为WebGL渲染,支持高清矢量渲染、无极缩放,具有更好的前端操作体验。并且地图整体UI样式进行了大量的重构性升级,让地图整体更加美观。
找到原本引入地图JSAPI的脚本,举例如下:
<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=您的密钥"></script>
将其中的参数v从 3.0 改为 4.0 即可
<script type="text/javascript" src="https://api.map.baidu.com/api?v=4.0&ak=您的密钥"></script>
只需要完成以上这一步,就直接完成了3.0到4.0的版本升级,4.0的API接口完全向前兼容,您无需再修改任何其他代码。
如果你之前用到了 BMapLib 的插件,我们对 BMapLib 也进行了兼容,你需要改一下之前的引用地址。
你可以在github下载 BMap-JavaScript-library.zip
或者从百度的备份CDN地址下载 BMap-JavaScript-library.zip
// 你之前的地址可能是 https://api.map.baidu.com/library/Heatmap/2.0/src/Heatmap_min.js<script type="text/javascript" src="https://api.map.baidu.com/library/Heatmap/2.0/src/Heatmap_min.js"></script>// 使用下载下来的新地址<script type="text/javascript" src="./BMap-JavaScript-library/Heatmap/Heatmap.min.js"></script>// 或者使用我们的CDN地址<script type="text/javascript" src="https://jsapi-demo.bj.bcebos.com/BMap-JavaScript-library/Heatmap/Heatmap.min.js"></script>
历史插件示例demo见 https://lbs.baidu.com/jsapi/demo/plugin-old/draw-edit/geoutils.html?version=4.0&type=js
升级后4.0后默认命名空间为BMap,BMapGL为向前兼容命名空间,且少量API或行为发生变化。但可通过声明API版本参数实现API 与行为向前兼容。并且地图整体UI样式进行了大量的重构性升级,让地图整体更加美观。
找到原本引入地图JSAPI的脚本,举例如下:
<script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&type=webgl&ak=您的密钥"></script>
删除其中的 type=webgl 参数,并将其中的参数v从 1.0 改为 4.0 即可
<script type="text/javascript" src="https://api.map.baidu.com/api?v=4.0&ak=您的密钥"></script>
完成以上这一步,就完成了GL到4.0的版本升级,4.0的API接口大部分向前兼容GL。升级后如果您的应用可正常使用,建议后续开发均以4.0版本的API为准。如果出现了不兼容情况,可通过第二步回退API版本。
由于4.0版与GL版API存在少量差异,所以在升级4.0的时候,为了不破坏API向前兼容的特性,避免开发者修改原有的通过JSAPI GL版开发的代码逻辑,可通过额外声明BMapGL.apiVersion = 'gl'让API与GL版本对标一致。声明此参数后,您无需再修改任何其他业务代码。
注意,该值一定要在创建地图之前执行,且在初次声明之后不要在运行期间修改。
<script type="text/javascript" src="https://api.map.baidu.com/api?v=4.0&ak=您的密钥"></script><script>// 声明沿用GL版的API设计BMapGL.apiVersion = 'gl';// 声明全局变量之后,再对地图初始化var map = new BMapGL.Map('container');</script>
如果您的地图升级行为是基于已有的业务交互,升级后地图UI样式反而产生了不适配的情况,希望对UI样式进行回退。
针对上述情况,您可以在引入地图JSAPI入口之后,在初始化地图之前,配置参数 BMapGL.uiVersion = 'gl'; 来设置全局坐标系标识。
注意,该值一定要在创建地图之前执行,且在初次声明之后不要在运行期间修改。
<script type="text/javascript" src="https://api.map.baidu.com/api?v=4.0&ak=您的密钥"></script><script>// 声明沿用GL版的API设计BMapGL.apiVersion = 'gl';// 在创建地图前声明全局变量BMapGL.uiVersion = 'gl';// 声明全局变量之后,再对地图初始化var map = new BMapGL.Map('container');</script>
以下 API 在 4.0 中已进行调整,推荐使用新版 API。旧版 API 将继续兼容,并将在后续版本中逐步废弃,请尽快完成迁移。
图层添加和移除方法:Map类新增addLayer和removeLayer方法,图层类均可通过此方法进行添加和移除。旧版本的addTileLayer、addGeoJSONLayer、addCustomHtmlLayer等方法均被标记为过时方法。
地图样式设置方法变更:Map类设置样式的方法为setMapStyle,可兼容多种样式格式。setMapStyleV2方法被标记为过时。
上一篇
下一篇