AI 地图
产品服务
解决方案
文档与支持
定价
更新时间: 2026/08/18 15:09
JavaScript API 升级指南
简介

百度地图 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

如果你的现有版本是2.0版本或者3.0版本,都可以参考这一章来升级到4.0版本。
升级后沿用原有的BMap命名空间,API向前兼容,渲染方式由栅格图升级为WebGL渲染,支持高清矢量渲染、无极缩放,具有更好的前端操作体验。并且地图整体UI样式进行了大量的重构性升级,让地图整体更加美观。

1.替换入口

找到原本引入地图JSAPI的脚本,举例如下:

<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=您的密钥"></script>

将其中的参数v3.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接口完全向前兼容,您无需再修改任何其他代码。

2.插件升级(非必需)

如果你之前用到了 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

从 GL 升级到 4.0

升级后4.0后默认命名空间为BMapBMapGL为向前兼容命名空间,且少量API或行为发生变化。但可通过声明API版本参数实现API 与行为向前兼容。并且地图整体UI样式进行了大量的重构性升级,让地图整体更加美观。

1.替换入口

找到原本引入地图JSAPI的脚本,举例如下:

<script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&type=webgl&ak=您的密钥"></script>

删除其中的 type=webgl 参数,并将其中的参数v1.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版本。

2.回退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>
3.回退样式(非必需)

如果您的地图升级行为是基于已有的业务交互,升级后地图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>

功能与默认行为变更对比
配置项含义JSAPI 3.0JSAPI GLJSAPI 4.0

MapOptions.center / MapOptions.zoom

初始化时通过参数设置视野中心点、缩放级别

不支持

不支持

支持

enableScrollWheelZoom

鼠标滚轮缩放

默认 false

默认 false

默认 true

centerAndZoom

初始化中心点/级别

必须手动调用

必须手动调用

非必需,未调用时自动展示默认视野

onload / firsttileload

地图/瓦片加载完成事件

触发一次

无限触发

只触发一次

displayOptions.indoor

室内图图层

默认关闭

默认开启,但不展示楼层控件

默认关闭,开启后自动展示楼层控件

minZoom ~ maxZoom

缩放级别范围

3 ~ 19

3 ~ 21

3 ~ 21

enableIconClick

底图标注可点

参数名为enableMapClick,默认开启

默认关闭

默认关闭

enableIconInfoWindow

点击底图标注自动弹窗

不支持,点击强制弹窗

不支持,无弹窗功能

默认false,开启后点击地图POI触发弹窗

API非强制升级

以下 API 在 4.0 中已进行调整,推荐使用新版 API。旧版 API 将继续兼容,并将在后续版本中逐步废弃,请尽快完成迁移。

  • 图层添加和移除方法:Map类新增addLayerremoveLayer方法,图层类均可通过此方法进行添加和移除。旧版本的addTileLayer、addGeoJSONLayer、addCustomHtmlLayer等方法均被标记为过时方法。

  • 地图样式设置方法变更:Map类设置样式的方法为setMapStyle,可兼容多种样式格式。setMapStyleV2方法被标记为过时。

上一篇

类参考

下一篇

开发前准备
本篇文章对您是否有帮助?