记一次高德JSAPI调用失效的问题解决

问题描述

今天在访问公司一个后台的时候,发现有个地方使用高德地图API失效,导致页面无法正常展示的问题,记录问题解决过程。
在这里插入图片描述

问题排查

1. 查看请求报错信息显示如下:

在这里插入图片描述
有个报错信息为INVALID_USER_SCODE

2. 查询高德API文档得到如下信息:

在这里插入图片描述
据此,推测是前端JSAPI调用失败,联想到前段时间让研发更换了Key,可能是更换没有成功;

3. 更换Key失败的原因?

在这里插入图片描述
官方说明里:“你在2021年12月02日以后申请的 key 需要配合你的安全密钥一起使用。”
之前的Key好久没换了,估计以前没有要求要安全密钥(Secret),所以前端没有引入该配置,现在新的Key有要求,那就用不了了吧。

问题解决

1. 联系公司前端开发更新

答:这个需要调整代码,需要发版;(今天不是发版窗口)得排到下周;

2.临时解决方案

在我这边已经有密钥的前提下,可以使用浏览器引入,临时解决问题;

  • 看了下官方文档,这个密钥是可以前端直接JS引入的;
    在这里插入图片描述
  • 找到该页面引用高德webapi的地方,在前面打个断点
    在这里插入图片描述
  • 在控制台引入安全密钥
    在这里插入图片描述
    在这里插入图片描述
    请求正常返回
    在这里插入图片描述

在这里插入图片描述
地图及功能又可以正常使用了!

### 高德 JSAPI 的使用教程 高德地图JavaScript API 提供了一种简单而强大的方法来集成地图功能到 Web 应用程序中。以下是关于如何在 Vue3 + Vite + TypeScript 项目中引入并配置高德地图的相关指南。 #### 1. 注册开发者账号并获取 Key 为了能够正常使用高德地图的功能,首先需要注册成为高德开放平台的开发者,并申请一个专属的应用密钥(Key)。具体操作可以参考官方文档[^1]中的指引完成账户创建以及应用设置流程。 #### 2. 引入高德地图脚本文件 可以通过 `<script>` 标签直接加载高德地图的 JS 文件或者利用 npm 包管理工具安装依赖包 `@amap/amap-jsapi-loader` 来动态加载所需的库资源[^2]: ```html <script src="https://webapi.amap.com/maps?v=2.0&key=您的KEY"></script> ``` 如果采用模块化构建,则推荐通过 NPM 方式来进行安装和初始化工作: ```bash npm install @amap/amap-jsapi-loader --save ``` 接着,在代码里这样导入它: ```javascript import AMapLoader from '@amap/amap-jsapi-loader'; AMapLoader.load({ key: '您自己的key', // 由高德申请得到 version: "2.0", // 指定要加载的版本号,默认最新稳定版 }).then((AMap)=>{ var map = new AMap.Map('container',{ zoom : 10, center:[116.397428,39.90923] }); }); ``` 以上片段展示了基本的地图实例化过程。 #### 3. 添加自定义控件或图层 除了默认显示的基础地图外,还可以根据实际需求添加更多类型的覆盖物比如标点、折线、多边形等;也可以启用某些特定的服务例如地理编码/逆地理编码查询地址坐标转换等功能[^3]。 对于更复杂的交互逻辑可能涉及到事件监听器绑定等方面的知识点,这些都可以查阅详细的 [官方帮助手册](http://lbs.amap.com/api/javascript-api/guide/) 获取更多信息支持进一步开发。 --- ### 示例代码展示 下面给出一段完整的示例代码用于演示如何在一个 HTML 页面内部嵌入一张带标注的地图视图效果: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>HighDe Map Example</title> <!-- 加载样式 --> <style type="text/css"> #map { width: 100%; height: 500px; } </style> </head> <body> <div id="map"></div> <!-- 引入高德地图 js api --> <script src="//webapi.amap.com/maps?v=2.0&key=你的key"></script> <script> // 初始化地图对象 var map = new AMap.Map('map', {resizeEnable:true}); // 设置中心位置及缩放级别 map.setCenter([116.397428, 39.90923]); map.setLevel(12); // 创建一个Marker实例 var marker = new AMap.Marker({ position:new AMap.LngLat(116.397428, 39.90923), title:'北京' }); // 将其添加至地图容器内 map.add(marker); </script> </body> </html> ``` 此段落描述了一个最基础的例子,其中包含了必要的组成部分——HTML结构部分用来呈现UI界面布局设计;JavaScript则负责处理业务层面的数据请求与渲染控制等工作流环节。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值