# gaode **Repository Path**: algdel/gaode ## Basic Information - **Project Name**: gaode - **Description**: No description available - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-25 - **Last Updated**: 2025-12-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 高德地图POI搜索工具 这是一个基于Node.js的高德地图POI搜索和导出工具,可以根据关键词和城市名称搜索POI数据,并将结果导出为CSV文件。 ## 功能特性 - 🔍 **智能搜索**: 支持关键词搜索和城市筛选 - 📊 **类型匹配**: 自动匹配POI分类编码 - 🏙️ **城市编码**: 支持城市名称和城市编码 - 📁 **批量导出**: 支持大数据量分批导出 - 📈 **数据统计**: 自动生成数据摘要和统计信息 - 🎯 **精确搜索**: 支持POI类型筛选 - 📱 **交互界面**: 友好的命令行交互界面 ## 安装和配置 ### 1. 环境要求 - Node.js >= 14.0.0 - npm 或 yarn ### 2. 安装依赖 ```bash npm install ``` ### 3. 配置API密钥 在使用前,您需要获取高德地图API密钥: 1. 访问 [高德开放平台](https://lbs.amap.com/) 2. 注册账号并创建应用 3. 获取Web服务API密钥 ### 4. Excel文件准备 确保以下文件存在于项目根目录: - `高德POI分类与编码.xlsx` - POI分类数据 - `AMap_adcode_citycode.xlsx` - 城市编码数据 ## 使用方法 ### 启动应用 ```bash node index.js ``` ### 操作流程 1. **输入API密钥**: 首次使用时需要输入高德地图API密钥 2. **选择操作**: - `1` - 搜索POI并导出CSV - `2` - 查看POI分类 - `3` - 查看城市编码 - `4` - 查看已导出的文件 - `5` - 退出 ### 搜索POI数据 选择选项1后,按提示输入: 1. **搜索关键词**: 如"餐厅"、"医院"、"学校"等 2. **城市/县名**: 如"北京"、"上海"、"杭州市"等 3. **POI类型关键词** (可选): 如"餐饮服务"、"医疗保健"等 4. **确认搜索**: 确认后开始搜索和导出 ## 文件结构 ``` gaode/ ├── config/ │ └── config.js # 配置文件 ├── src/ │ ├── excelParser.js # Excel文件解析 │ ├── amapAPI.js # 高德API调用 │ └── csvExporter.js # CSV导出功能 ├── data/ # 导出文件目录 ├── index.js # 主程序入口 ├── package.json # 项目配置 ├── README.md # 说明文档 ├── 高德POI分类与编码.xlsx # POI分类数据 └── AMap_adcode_citycode.xlsx # 城市编码数据 ``` ## 导出文件说明 ### CSV文件 导出的CSV文件包含以下字段: | 字段 | 说明 | |------|------| | ID | POI唯一标识 | | 名称 | POI名称 | | 类型 | POI类型 | | 类型编码 | POI类型编码 | | 地址 | 详细地址 | | 坐标 | 经纬度坐标 | | 电话 | 联系电话 | | 商圈 | 所属商圈 | | 区域 | 行政区域 | | 区域编码 | 行政区域编码 | | 城市编码 | 城市编码 | | 省份编码 | 省份编码 | | 省份 | 省份名称 | | 城市 | 城市名称 | | 区县 | 区县名称 | | 评分 | 用户评分 | | 人均消费 | 人均消费金额 | | 标签 | POI标签 | | 商铺信息 | 商铺详细信息 | | 导出时间 | 数据导出时间 | ### 摘要文件 同时生成JSON格式的摘要文件,包含: - 搜索信息(关键词、城市、参数等) - 统计信息(总数、类型分布、区域分布等) - 数据质量统计(有电话、有地址的比例等) ## API限制说明 高德地图API有以下限制: - **请求频率**: 单个Key日调用量上限 - **返回数量**: 每次请求最多返回20条记录 - **总页数**: 最多获取100页数据(约2000条) 工具会自动处理分页和延迟,避免超出API限制。 ## 错误处理 常见错误及解决方法: 1. **API密钥无效** - 检查密钥是否正确 - 确认API服务已开通 2. **Excel文件读取失败** - 确认文件存在于项目根目录 - 检查文件格式是否正确 3. **网络请求失败** - 检查网络连接 - 确认防火墙设置 4. **导出文件失败** - 检查data目录权限 - 确认磁盘空间充足 ## 使用示例 ### 示例1: 搜索北京的所有餐厅 ``` 搜索关键词: 餐厅 城市: 北京 POI类型: 餐饮服务 ``` ### 示例2: 搜索上海的医院 ``` 搜索关键词: 医院 城市: 上海 POI类型: 医疗保健 ``` ### 示例3: 搜索深圳的学校 ``` 搜索关键词: 学校 城市: 深圳 POI类型: 科教文化服务 ``` ## 注意事项 1. **API配额**: 请注意高德地图API的调用配额限制 2. **数据准确性**: 导出的数据基于高德地图API,可能存在误差 3. **合规使用**: 请遵守高德地图API的使用条款和数据使用规范 4. **数据更新**: POI数据会定期更新,建议定期重新搜索获取最新数据 ## 技术支持 如果遇到问题,请检查: 1. Node.js版本是否符合要求 2. 依赖包是否正确安装 3. API密钥是否有效 4. Excel文件格式是否正确 5. 网络连接是否正常 ## 测试示例 项目包含了多个测试和示例文件: ### 1. 基础功能测试 ```bash node test.js ``` 验证所有模块的基本功能是否正常。 ### 2. 使用示例 ```bash node example.js ``` 展示如何编程方式使用工具的各种功能。 ### 3. 广州市地下停车场测试 ```bash node test_guangzhou_parking.js ``` 使用模拟数据测试广州市地下停车场的搜索和导出功能,已生成示例CSV文件。 ### 4. 真实搜索(需要API密钥) ```bash node real_search_guangzhou_parking.js ``` 进行真实的API搜索广州市地下停车场,需要在config/config.js中设置有效的API密钥。 ### 5. 交互式界面 ```bash node index.js ``` 启动友好的命令行交互界面。 ## 生成的测试数据 运行测试脚本后,会在 `data/` 目录下生成以下文件: - `地下停车场_广州市_2025-12-19T08-45-52.csv` - 广州市地下停车场的示例数据 - `地下停车场_广州市_summary_2025-12-19T08-45-52.json` - 对应的统计摘要文件 ### CSV文件包含的字段 | 字段 | 说明 | 示例 | |------|------|------| | ID | POI唯一标识 | B000A83MD6 | | 名称 | POI名称 | 天河城地下停车场 | | 类型 | POI类型 | 停车场 | | 类型编码 | POI类型编码 | 150909 | | 地址 | 详细地址 | 天河路208号天河城 | | 坐标 | 经纬度坐标 | 113.324520,23.137344 | | 电话 | 联系电话 | 020-85592831 | | 商圈 | 所属商圈 | 天河北 | | 区域 | 行政区域 | 天河区 | | 城市编码 | 城市编码 | 020 | | 省份 | 省份名称 | 广东省 | | 城市 | 城市名称 | 广州市 | | 区县 | 区县名称 | 天河区 | | 评分 | 用户评分 | 4.5 | ## API参数说明 根据高德地图官方文档,API请求参数已严格按照规范对齐: ### 必需参数 - `key` - 高德地图API密钥 - `keywords` - 搜索关键词 ### 可选参数 - `city` - 城市名称或城市编码 - `types` - POI类型编码 - `page` - 页码(从1开始) - `pagesize` - 每页记录数(最大50条) - `citylimit` - 是否限制在指定城市内搜索(默认false) - `datatype` - 返回数据类型(默认all) - `output` - 输出格式(json) - `extensions` - 返回结果控制(all) ### 参数修正说明 - ✅ 使用 `page_size` 和 `page_num`(严格按照param.md官方文档) - ✅ 使用 `region` 替代 `city`(官方文档标准) - ✅ 使用 `city_limit` 和 `show_fields` 参数 - ✅ 限制每页最大25条记录(官方文档限制) - ✅ 完整的错误处理和状态检查 ### 官方文档对齐 根据 `param.md` 官方API文档,所有参数已严格按照规范修正: - 必需参数:`key`, `keywords` - 可选参数:`region`, `types`, `page_num`, `page_size`, `city_limit`, `show_fields` - 参数限制:`page_size` 最大25条,`keywords` 最大80字符 ## 更新日志 - v1.0.0 - 初始版本,支持基本的POI搜索和CSV导出功能 - v1.0.1 - 添加广州市地下停车场测试示例,优化Excel解析器 - v1.0.2 - 严格按照高德地图API文档修正请求参数,使用标准的pagesize参数 - v1.0.3 - 根据param.md官方文档完全对齐API参数,使用page_size、region等标准参数