peixue-dev/peidu/Archive/一次性文件/[一次性]腾讯地图API配置指南-2026-01-26.md

198 lines
4.8 KiB
Markdown
Raw Normal View History

# 腾讯地图 API 配置指南
## 问题
```
❌ 逆地理编码API返回失败: {status: 199, message: "此key未开启WebserviceAPI功能"}
```
## 原因
当前使用的 API Key `Q7CBZ-CC2C5-5O6IA-IU5VM-KJGAF-IKBRO` 没有开启 **WebService API** 权限。
## 解决步骤
### 方案1开启现有Key的WebService权限推荐
1. **登录腾讯地图开放平台**
- 网址https://lbs.qq.com/console/mykey.html
- 使用你的腾讯账号登录
2. **找到你的Key**
- 在"我的应用"中找到 Key`Q7CBZ-CC2C5-5O6IA-IU5VM-KJGAF-IKBRO`
3. **编辑Key配置**
- 点击"设置"或"编辑"按钮
- 找到"可用服务"或"服务类型"
4. **勾选WebService API**
- ✅ 勾选 **WebService API**
- ✅ 特别确保勾选 **逆地理编码(地址解析)**
5. **保存配置**
- 点击保存
- 等待1-2分钟生效
### 方案2创建新的Key备选
如果无法修改现有Key可以创建一个新的
1. **创建新应用**
- 进入https://lbs.qq.com/console/mykey.html
- 点击"创建应用"
2. **填写应用信息**
- 应用名称:习正陪伴小程序
- 应用类型:微信小程序
3. **添加Key**
- 点击"添加Key"
- Key名称习正陪伴-地图服务
- 勾选服务类型:
- ✅ WebService API
- ✅ 逆地理编码
- ✅ 地点搜索(可选)
4. **配置域名白名单**
- 在"域名白名单"中添加:`*.qq.com`
- 或者留空(不限制)
5. **获取新Key**
- 复制生成的Key
- 替换到代码中
### 方案3使用微信小程序的位置API临时方案
如果暂时无法配置腾讯地图API可以使用微信小程序自带的位置API
```javascript
// 使用微信小程序的逆地理编码
wx.chooseLocation({
success: (res) => {
console.log('地址:', res.address)
console.log('详细地址:', res.name)
this.address = res.address + res.name
}
})
```
但这个方案需要用户手动选择位置,体验不如自动获取。
## 配置新Key到代码
如果创建了新Key需要更新以下文件
### 1. 更新 map.js 配置
```javascript
// peidu/uniapp/src/config/map.js
export const TENCENT_MAP = {
key: '你的新Key', // 替换这里
geocoderUrl: 'https://apis.map.qq.com/ws/geocoder/v1/',
directionUrl: 'https://apis.map.qq.com/ws/direction/v1/',
}
```
### 2. 更新签到页面中的Key
需要更新以下文件中硬编码的Key
- `peidu/uniapp/src/teacher-package/pages/teacher/checkin.vue`
- `peidu/uniapp/src/teacher-package/pages/teacher/checkout.vue`
- `peidu/uniapp/teacher-package/pages/teacher/checkin.vue`
搜索 `Q7CBZ-CC2C5-5O6IA-IU5VM-KJGAF-IKBRO` 并替换为新Key。
## 验证配置
配置完成后,可以通过以下方式验证:
### 1. 浏览器测试
在浏览器中访问:
```
https://apis.map.qq.com/ws/geocoder/v1/?location=31.230416,121.473701&key=你的Key&get_poi=0
```
**成功响应示例:**
```json
{
"status": 0,
"message": "query ok",
"result": {
"address": "上海市黄浦区南京东路",
"address_component": {
"province": "上海市",
"city": "上海市",
"district": "黄浦区",
"street": "南京东路"
}
}
}
```
**失败响应示例:**
```json
{
"status": 199,
"message": "此key未开启WebserviceAPI功能"
}
```
### 2. 小程序测试
1. 重新编译小程序
2. 进入签到页面
3. 查看控制台日志
4. 应该看到:`✅ 地址解析成功: 安徽省合肥市蜀山区xxx`
## 常见问题
### Q1: 为什么我的Key无法开启WebService
**A:** 可能是以下原因:
- Key类型不支持需要是"微信小程序"类型)
- 账号权限不足
- 需要实名认证
**解决:** 创建一个新的Key选择正确的应用类型。
### Q2: 开启后还是报错?
**A:** 可能需要等待1-2分钟生效或者
- 清除小程序缓存
- 重新编译小程序
- 检查域名白名单配置
### Q3: 有配额限制吗?
**A:** 腾讯地图API有免费配额
- 个人开发者10,000次/天
- 企业开发者100,000次/天
如果超出配额,需要购买套餐或申请提额。
## 微信小程序域名配置
别忘了在微信小程序后台配置域名白名单:
**路径:** 微信公众平台 → 开发 → 开发管理 → 开发设置 → 服务器域名
**添加:**
```
request合法域名https://apis.map.qq.com
```
## 相关链接
- 腾讯地图开放平台https://lbs.qq.com/
- 控制台https://lbs.qq.com/console/mykey.html
- WebService API文档https://lbs.qq.com/service/webService/webServiceGuide/webServiceGcoder
- 逆地理编码文档https://lbs.qq.com/service/webService/webServiceGuide/webServiceGcoder
---
**创建时间:** 2026-01-26
**问题:** 此key未开启WebserviceAPI功能
**解决:** 在腾讯地图控制台开启WebService API权限