176 lines
4.9 KiB
Markdown
176 lines
4.9 KiB
Markdown
|
|
# 百度地图商用授权解决方案
|
|||
|
|
|
|||
|
|
## 问题描述
|
|||
|
|
|
|||
|
|
当前项目使用百度地图API时出现"未获得百度地图商用授权"的提示,这是因为使用了示例或无效的API密钥导致的。
|
|||
|
|
|
|||
|
|
## 解决方案
|
|||
|
|
|
|||
|
|
### 1. 获取百度地图API密钥
|
|||
|
|
|
|||
|
|
#### 1.1 申请流程
|
|||
|
|
1. 访问百度地图开放平台:http://lbsyun.baidu.com/
|
|||
|
|
2. 注册并登录百度账号
|
|||
|
|
3. 进入控制台:http://lbsyun.baidu.com/apiconsole/key
|
|||
|
|
4. 点击「创建应用」按钮
|
|||
|
|
5. 填写应用信息并获取API Key (AK)
|
|||
|
|
|
|||
|
|
#### 1.2 应用配置要求
|
|||
|
|
- **应用名称**:填写您的应用名称(如:宁夏智慧养殖监管平台)
|
|||
|
|
- **应用类型**:选择「浏览器端」
|
|||
|
|
- **启用服务**:勾选「地图」、「定位」等需要的服务
|
|||
|
|
- **Referer白名单**:
|
|||
|
|
- 开发环境:设置为 `*`(允许所有域名)
|
|||
|
|
- 生产环境:设置为您的具体域名(如:`https://yourdomain.com/*`)
|
|||
|
|
|
|||
|
|
#### 1.3 常见错误解决
|
|||
|
|
如果遇到「APP不存在,AK有误」错误:
|
|||
|
|
1. 检查API密钥是否正确复制
|
|||
|
|
2. 确认应用类型选择为「浏览器端」
|
|||
|
|
3. 检查Referer白名单配置
|
|||
|
|
4. 确认API密钥状态为「启用」
|
|||
|
|
|
|||
|
|
### 2. 配置API密钥
|
|||
|
|
|
|||
|
|
#### 方法一:直接修改配置文件(开发环境)
|
|||
|
|
|
|||
|
|
编辑 `frontend/src/config/env.js` 文件:
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
export const BAIDU_MAP_CONFIG = {
|
|||
|
|
// 替换为您申请的真实API密钥
|
|||
|
|
apiKey: 'YOUR_REAL_API_KEY_HERE',
|
|||
|
|
// ... 其他配置
|
|||
|
|
};
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 方法二:使用环境变量(推荐)
|
|||
|
|
|
|||
|
|
1. 在项目根目录创建 `.env.local` 文件:
|
|||
|
|
```
|
|||
|
|
VITE_BAIDU_MAP_API_KEY=YOUR_REAL_API_KEY_HERE
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. 修改 `frontend/src/config/env.js`:
|
|||
|
|
```javascript
|
|||
|
|
export const BAIDU_MAP_CONFIG = {
|
|||
|
|
apiKey: import.meta.env.VITE_BAIDU_MAP_API_KEY || 'fallback_key',
|
|||
|
|
// ... 其他配置
|
|||
|
|
};
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 商用授权说明
|
|||
|
|
|
|||
|
|
#### 免费配额
|
|||
|
|
- 每日调用量:10万次
|
|||
|
|
- 并发请求:无限制
|
|||
|
|
- 适用于:个人开发、测试、小型项目
|
|||
|
|
|
|||
|
|
#### 商用授权
|
|||
|
|
如果项目需要商用或超出免费配额,需要:
|
|||
|
|
|
|||
|
|
1. **联系百度销售**:
|
|||
|
|
- 电话:400-890-0065
|
|||
|
|
- 邮箱:lbsyun@baidu.com
|
|||
|
|
|
|||
|
|
2. **购买商用授权**:
|
|||
|
|
- 根据调用量选择合适的套餐
|
|||
|
|
- 签署商用授权协议
|
|||
|
|
- 获得商用版API密钥
|
|||
|
|
|
|||
|
|
3. **配置商用密钥**:
|
|||
|
|
- 将商用API密钥替换到配置文件中
|
|||
|
|
- 更新Referer白名单为生产域名
|
|||
|
|
|
|||
|
|
### 4. 安全建议
|
|||
|
|
|
|||
|
|
1. **密钥保护**:
|
|||
|
|
- 不要将API密钥提交到公开的代码仓库
|
|||
|
|
- 使用环境变量存储敏感信息
|
|||
|
|
- 定期更换API密钥
|
|||
|
|
|
|||
|
|
2. **域名限制**:
|
|||
|
|
- 在百度控制台设置准确的Referer白名单
|
|||
|
|
- 避免使用通配符 `*`(仅开发环境使用)
|
|||
|
|
|
|||
|
|
3. **使用监控**:
|
|||
|
|
- 定期检查API调用量
|
|||
|
|
- 设置调用量告警
|
|||
|
|
- 监控异常调用
|
|||
|
|
|
|||
|
|
### 5. 故障排除
|
|||
|
|
|
|||
|
|
#### 常见错误及解决方法
|
|||
|
|
|
|||
|
|
1. **"Invalid API key"**
|
|||
|
|
- 检查API密钥是否正确
|
|||
|
|
- 确认应用类型为"浏览器端"
|
|||
|
|
- 检查Referer白名单设置
|
|||
|
|
|
|||
|
|
2. **"Quota exceeded"**
|
|||
|
|
- 检查当日调用量是否超限
|
|||
|
|
- 考虑升级到商用版本
|
|||
|
|
- 优化代码减少不必要的API调用
|
|||
|
|
|
|||
|
|
3. **"Service not enabled"**
|
|||
|
|
- 在百度控制台启用"地图API"服务
|
|||
|
|
- 确认应用状态为"正常"
|
|||
|
|
|
|||
|
|
### 当前问题状态
|
|||
|
|
|
|||
|
|
✅ **API密钥已配置**:已成功配置有效的百度地图API密钥,地图服务正常工作
|
|||
|
|
|
|||
|
|
### 7. 立即解决步骤
|
|||
|
|
|
|||
|
|
#### 步骤1:申请有效的API密钥
|
|||
|
|
1. 访问:http://lbsyun.baidu.com/apiconsole/key
|
|||
|
|
2. 登录百度账号
|
|||
|
|
3. 点击「创建应用」
|
|||
|
|
4. 配置应用信息:
|
|||
|
|
- 应用名称:宁夏智慧养殖监管平台
|
|||
|
|
- 应用类型:**浏览器端**(重要!)
|
|||
|
|
- 启用服务:勾选「地图」
|
|||
|
|
- Referer白名单:设置为 `*`(开发环境)
|
|||
|
|
5. 创建成功后复制API密钥
|
|||
|
|
|
|||
|
|
#### 步骤2:配置API密钥
|
|||
|
|
有两种配置方式:
|
|||
|
|
|
|||
|
|
**方式一:修改环境变量文件(推荐)**
|
|||
|
|
```bash
|
|||
|
|
# 编辑 frontend/.env 文件
|
|||
|
|
VITE_BAIDU_MAP_API_KEY=您申请的真实API密钥
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**方式二:直接修改配置文件**
|
|||
|
|
```javascript
|
|||
|
|
// 编辑 frontend/src/config/env.js
|
|||
|
|
apiKey: '您申请的真实API密钥'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 步骤3:重启开发服务器
|
|||
|
|
```bash
|
|||
|
|
cd frontend
|
|||
|
|
npm run dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 8. 项目状态
|
|||
|
|
|
|||
|
|
- ✅ 已配置有效的API密钥:`3AN3VahoqaXUs32U8luXD2Dwn86KK5B7`
|
|||
|
|
- ✅ 前端服务器正常运行:http://localhost:5301/
|
|||
|
|
- ✅ 后端API服务正常:http://localhost:5350/api/
|
|||
|
|
- ✅ 百度地图服务可正常使用
|
|||
|
|
- ✅ 已配置环境变量支持
|
|||
|
|
- ✅ 已添加详细的申请指导
|
|||
|
|
- ✅ 已配置安全的.gitignore规则
|
|||
|
|
|
|||
|
|
### 9. 重要提醒
|
|||
|
|
|
|||
|
|
1. **必须申请真实API密钥**:测试密钥无法正常使用
|
|||
|
|
2. **应用类型必须选择「浏览器端」**:这是最常见的错误原因
|
|||
|
|
3. **保护API密钥安全**:不要将真实密钥提交到代码仓库
|
|||
|
|
4. **商用需要授权**:如用于商业用途,需要联系百度申请商用授权
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**注意**:当前使用的是临时测试密钥,仅供开发调试使用,请尽快申请正式的API密钥。
|