Files
nxxmdata/docs/project/baidu-map-license.md

176 lines
4.9 KiB
Markdown
Raw Normal View History

# 百度地图商用授权解决方案
## 问题描述
当前项目使用百度地图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密钥。