You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优化Google Places API调用以获取更全的热门景点结果?

问题概述

使用PHP调用Google Places Text Search API获取地区热门旅游景点时,遇到以下问题:

  • 虽API支持分页最多获取60条结果,但实际返回数量远低于上限(如布鲁塞尔仅返回20条);
  • 核心景点(如Royal Palace、Train World)未出现在结果中,反而返回次要景点;
  • 分页后结果重复,无法获取更多有效内容。

当前请求URL结构:

https://maps.googleapis.com/maps/api/place/textsearch/json?type=tourist_attraction|point_of_interest|landmark|natural_feature|museum|amusement_park|park&language=fr&key=***myapi***&query=***location***
可行解决方案

1. 切换为Nearby Search API

Text Search基于文本匹配排序,容易忽略高热度但字面匹配度低的景点。Nearby Search支持按地理范围+类型搜索,默认按热度(rankby=prominence)排序,能优先返回核心景点:

  • 请求示例(以布鲁塞尔为中心,半径5公里):
    https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=50.8503,4.3517&radius=5000&type=tourist_attraction&key=***myapi***&language=fr
    
  • 可通过pagetoken参数分页,最多获取60条结果,且排序逻辑更贴合热度需求。

2. 拆分多类型请求

当前请求用|合并了多种类型,API对多类型的排序权重分配可能不够精准。建议拆分单独请求各类景点(如tourist_attraction、museum、landmark),再对结果去重合并,能覆盖更多细分领域的核心景点(比如单独请求museum更容易命中Train World)。

3. 优化Text Search的Query参数

避免使用宽泛的地点名称作为query,可以补充关键词提升精准度:

  • 比如将query设为"布鲁塞尔 热门旅游景点",针对缺失景点单独搜索(如"布鲁塞尔 Royal Palace")后整合结果。

4. 检查API配置

  • 确认API Key已启用Places API,且未触发配额限制(配额不足可能导致返回重复分页结果);
  • 检查language参数是否影响结果排序(法语环境下部分景点名称匹配逻辑可能变化,可尝试切换为英语测试)。

内容的提问来源于stack exchange,提问作者Laurent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:50:32