使用MapBox渲染网页地图报Uncaught ReferenceError: mapboxgl is not defined错误
报错
Uncaught ReferenceError: mapboxgl is not defined的核心原因是:浏览器执行地图初始化代码时,尚未加载Mapbox GL JS核心SDK,无法识别mapboxgl全局对象。
解决步骤
- 第一步:在页面中优先引入Mapbox GL JS的样式文件与核心JS SDK,引入位置必须放在你自己编写的地图初始化脚本之前。
引入代码如下:<!-- Mapbox GL JS 样式文件 --> <link href="https://api.mapbox.com/mapbox-gl-js/v2.15.0/mapbox-gl.css" rel="stylesheet"> <!-- Mapbox GL JS 核心SDK --> <script src="https://api.mapbox.com/mapbox-gl-js/v2.15.0/mapbox-gl.js"></script> - 第二步:调整代码执行顺序,确保地图初始化逻辑在SDK加载完成后执行,最简单的实现方式是将你的初始化
<script>标签放在上述SDK引入标签的下方。 - 第三步:当前报错解决后如果仍存在地图加载异常,检查代码中的
mapToken是否已正确赋值为你个人申请的有效Mapbox访问令牌。
完整可运行示例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Mapbox基础地图</title> <link href="https://api.mapbox.com/mapbox-gl-js/v2.15.0/mapbox-gl.css" rel="stylesheet"> <script src="https://api.mapbox.com/mapbox-gl-js/v2.15.0/mapbox-gl.js"></script> </head> <body> <div id='map' style='width: 400px; height: 300px;'></div> <script> // 替换为你自己的Mapbox访问令牌 const mapToken = "你的有效Mapbox访问令牌"; mapboxgl.accessToken = mapToken; const map = new mapboxgl.Map({ container: 'map', style: 'mapbox://styles/mapbox/streets-v11', center: [-74.5, 40], zoom: 9 }); </script> </body> </html>
内容的提问来源于stack exchange,提问作者Artiom O
相关产品推荐
相关产品推荐

