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