AI 地图
产品服务
解决方案
文档与支持
定价
更新时间: 2026/07/27 10:37
您当前查看的是 JSAPI GL 历史版本文档。该版本仅用于维护现有项目,不建议用于新项目开发。新项目请使用 JSAPI 4.0,如需升级现有项目,请参考升级指南
You are viewing the legacy JSAPI GL documentation. This version is maintained for existing projects only and is not recommended for new development. For new projects, use the JSAPI 4.0 documentation. If you are upgrading an existing project, please refer to the Migration Guide.
JavaScript API GL升级指南
简单介绍

本文适用于需要将接入了地图 JS API 2.0 或者 3.0版本的地图应用升级到 GL 的开发者阅读,我们建议开发者按照以下步骤对代码进行少许修改来升级 JS API 的版本,以便获得最佳的开发体验和后续服务支持。

新旧版本对比
1. 引用JS不同

GL版本引用的百度地图API文件需按下方内容替换:

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

以上是同步加载 JSAPI 的使用方式,异步加载可以参考示例

2. 调用类以及展示地图等方法不同

初始化地图设置 ,将BMap改为BMapGL

注意:所有的实例化都需要修改为BMapGL

var map = new BMapGL.Map('container'); // 创建地图实例
var point = new BMapGL.Point(116.404, 39.915); // 创建点坐标
map.centerAndZoom(point, 15); // 初始化地图,设置中心点坐标和地图级别
3. 引用库相关替换

GL工具库BMapGLLibMapVGLBMap Draw

4. 方法使用区别

(1) 折线添加箭头:

var polyline = new BMapGL.Polyline(
[
new BMapGL.Point(116.399, 39.91),
new BMapGL.Point(116.405, 39.92),
new BMapGL.Point(116.423493, 39.907445),
],
{
strokeTexture: {
// width/height 需要是2的n次方
url: './images/Icon_road_blue_arrow.png',
width: 16,
height: 64,
},
strokeWeight: 8,
strokeOpacity: 0.8,
},
);

使用时可参考示例

(2) GL点标记marker目前不支持弹跳,使用时可调用其他方式实现如:

// 创建自定义覆盖物DOM
function createDOM(feature) {
var img = document.createElement('img');
img.style.height = '240px';
img.style.width = '80px';
img.src = 'https://bj.bcebos.com/v1/mapopen-pub-jsapigl/assets/images/fire.gif';
img.draggable = false;
return img;
}
// 创建自定义覆盖物
var customOverlay = new BMapGL.CustomOverlay(createDOM, {
point: new BMapGL.Point(116.42342230333138, 39.92498414216742),
opacity: 0.5,
offsetY: -10,
});
map.addOverlay(customOverlay);

使用时可参考示例。其他方法可参考示例

(3) 底图点击事件更改:需要添加以下代码实现:

map.addEventListener('click', (e) => {
clickPoint = e.latlng;
const point = e.point;
const itemId = map.getIconByClickPosition(e);
});

使用时可参考示例

(4) 添加聚合点更改:

GL版本需引用MapvGL的js 并调用new mapvgl.ClusterLayer() 方法,使用时可参考MapVGL示例

(5) 添加热力图图层更改:

GL需要调用MapVGL的方式实现热力图的加载,使用时可参考MapVGL示例

(6) 个性化地图调用方法变更:

GL目前仅支持新版个性化地图方法(Map.setMapStyleV2),不支持旧版的个性化地图方法(Map.setMapStyle)。

(7) 行政区划方法更改:

GL新增简易行政区图层方法 :new BMapGL.DistrictLayer() 使用时可参考行政大区图层

(8) 轨迹运动方法更改:

GL版本的需要调用 BMapGLLib.TrackAnimation,引入 TrackAnimation.min.js。使用时可参考查看源码

(9) 自定义canvas图层更改:

GL版本采用以下方法进行调用:

BMapGL.CustomHtmlLayer(createDOM, {
offsetX: 0,
offsetY: 0,
minZoom: 13,
maxZoom: 19,
enableDraggingMap: true,
});

使用时可参考示例

(10) 室内图展示功能更改:

GL版本的展示室内图需在地图初始化时进行设置:showControls: true 使用时可参考室内图

(11) GL版本新增了设置3D视角等属性

可通过map.setHeading(64.5);map.setTilt(73)这两个属性进行设置

(12) 交通流量图层方法更改:

GL版本使用方法为添加:map.setTrafficOn(), 移除:map.setTrafficOff();使用时可参考交通流量图层

(13) 调用驾车路线规划添加途经点方法更改:

GL版本使用方法为以下:

var driving = new BMapGL.DrivingRouteLine(map, {
renderOptions: {
map: map,
autoViewport: true,
enableDragging: true,
},
});
var start = new BMapGL.Point(116.236532, 39.904113661);
var end = new BMapGL.Point(116.545486, 40.00604);
var way2 = new BMapGL.Point(116.36315661025989, 39.904113661);
driving.search(start, end, {
waypoints: [way2],
});

使用时可参考驾车路线规划

升级完成

如发现其他接口上的不兼容,可以通过创建工单方式进行反馈

上一篇

服务介绍

下一篇

账号和获取密钥
本篇文章对您是否有帮助?