goplaces¶
Skill 简介¶
goplaces 是一个基于 Google Places API (New) 的现代化命令行工具,旨在为开发者提供便捷的地理位置查询服务。通过这个工具,用户可以轻松实现文本搜索、地点详情查询、地址解析以及用户评论获取等功能。goplaces 支持以人类友好的文本格式输出结果,同时也可以通过 --json 选项输出 JSON 格式的数据,方便开发者将其集成到脚本或自动化流程中。
Google Places API 是 Google 提供的强大地理位置服务之一,涵盖了丰富的地点信息,包括餐馆、咖啡店、商店等各类场所。然而,直接使用 API 进行开发往往需要处理繁琐的 HTTP 请求和参数配置。goplaces 通过提供一个简洁的命令行界面,将这些复杂的操作封装起来,使得开发者可以更专注于业务逻辑的实现。
主要功能¶
goplaces 提供了多个核心功能,涵盖了常见的地理位置查询需求。以下是几个主要功能的详细说明:
-
文本搜索:通过关键字进行地点搜索。例如,用户可以输入
"咖啡"来查找附近的咖啡店。命令示例如下:
sh goplaces search "咖啡" --open-now --min-rating 4 --limit 5
该命令会查找当前营业且评分不低于 4 分的 5 家咖啡店。 -
地点详情查询:获取指定地点的详细信息,包括地址、联系方式、营业时间等。用户需要提供
place_id作为参数:
sh goplaces details <place_id> --reviews
通过添加--reviews选项,用户还可以获取该地点的用户评论。 -
地址解析:将人类可读的地址转换为地理坐标(纬度和经度)。例如:
sh goplaces resolve "Soho, London" --limit 5
该命令会解析 "Soho, London" 并返回最多 5 个匹配的地点。 -
地理搜索:通过地理坐标和半径进行地点搜索。例如,查找位于纽约市某个特定区域半径 3 公里内的披萨店:
sh goplaces search "pizza" --lat 40.8 --lng -73.9 --radius-m 3000
该命令会返回指定区域内评分最高的披萨店。 -
分页查询:对于返回结果较多的查询,goplaces 支持通过
page-token进行分页查询。例如:
sh goplaces search "pizza" --page-token "NEXT_PAGE_TOKEN"
这将获取下一页的披萨店列表。 -
JSON 输出:为了方便开发者将结果集成到其他应用中,goplaces 支持以 JSON 格式输出数据。例如:
sh goplaces search "sushi" --json
该命令会返回寿司店的 JSON 格式数据。
使用场景¶
goplaces 适用于多种开发场景,以下是几个典型的应用示例:
-
移动应用开发:在移动应用中集成地理位置服务,提供附近场所的搜索和推荐功能。例如,开发一个餐厅推荐应用,用户可以通过应用查找附近的热门餐厅。
-
网站集成:在网站中嵌入地图和地点信息,提供更丰富的用户体验。例如,开发一个旅游网站,用户可以通过网站查找目的地的景点、餐馆等信息。
-
自动化脚本:编写自动化脚本,定期获取特定地点的用户评论或更新信息。例如,开发一个数据分析工具,定期获取某个地点的用户评论数据进行分析。
-
代理服务测试:使用
GOOGLE_PLACES_BASE_URL进行代理服务测试,确保 API 请求的稳定性和安全性。 -
本地开发环境配置:在本地开发环境中配置和使用 goplaces,进行功能测试和调试。例如,在本地环境中模拟 API 请求,测试应用的地理位置功能。
如何使用¶
安装¶
goplaces 可以通过 Homebrew 进行安装。打开终端并运行以下命令:
brew install steipete/tap/goplaces
配置¶
在使用 goplaces 之前,需要配置 Google Places API 密钥。可以通过设置环境变量 GOOGLE_PLACES_API_KEY 来完成:
export GOOGLE_PLACES_API_KEY=your_api_key_here
如果需要使用代理或测试环境,可以设置 GOOGLE_PLACES_BASE_URL:
export GOOGLE_PLACES_BASE_URL=https://your-proxy-url.com
常用命令¶
以下是一些常用命令的示例:
-
文本搜索:
sh goplaces search "咖啡" --open-now --min-rating 4 --limit 5 -
地理搜索:
sh goplaces search "pizza" --lat 40.8 --lng -73.9 --radius-m 3000 -
地址解析:
sh goplaces resolve "Soho, London" --limit 5 -
地点详情查询:
sh goplaces details <place_id> --reviews -
JSON 输出:
sh goplaces search "sushi" --json
示例¶
示例 1:查找当前营业的咖啡店¶
goplaces search "咖啡" --open-now --min-rating 4 --limit 5
输出示例:
1. 星巴克咖啡 (评分: 4.5)
地址: 北京市朝阳区建国路 88 号
营业时间: 08:00 - 22:00
2. 漫咖啡 (评分: 4.2)
地址: 北京市海淀区中关村大街 1 号
营业时间: 09:00 - 23:00
...
示例 2:获取指定地点的详细信息¶
goplaces details ChIJN1t_tDeuEmsRUsoyG83frY4 --reviews
输出示例:
名称: 长城
地址: 北京市延庆区八达岭镇
评分: 4.7
评论:
1. "非常壮观,值得一游!" - 张三
2. "风景优美,服务周到。" - 李四
...
总结¶
goplaces 是一个功能强大且易于使用的命令行工具,极大地简化了与 Google Places API 的交互过程。它不仅适合开发者进行快速测试和集成,也非常适合需要处理地理位置数据的各种应用场景。通过支持多种查询方式和灵活的输出格式,goplaces 为开发者提供了极大的便利。无论是移动应用开发、网站集成,还是自动化脚本编写,goplaces 都能满足您的需求。如果您正在寻找一个高效、可靠的地理位置查询工具,goplaces 无疑是您的理想选择。