# 百度地图商用授权解决方案

## 问题描述

当前项目使用百度地图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密钥。