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

如何借助Google Places API获取机场及对应航站楼信息?

实现机场航站楼展示的最优方案

核心思路:借助Place Details API补充航站楼数据

你当前基于Autocomplete筛选机场的逻辑可以保留,在此基础上通过Place Details API获取机场的完整结构化信息,这是获取航站楼数据最精准的方式,具体步骤如下:

1. 保留Autocomplete的机场筛选逻辑

继续使用Autocomplete的types参数指定"airport",确保返回结果均为机场类POI,同时获取每个结果的place_id。

2. 调用Place Details API提取航站楼信息

用第一步拿到的place_id作为参数调用Place Details API,请求时在fields参数中指定"address_components"和"name"——航站楼信息通常嵌套在address_components的"sublocality_level_1"或专属结构化字段中。

示例请求逻辑(伪代码):

// 假设已获取Autocomplete返回的placeId
fetch(`https://maps.googleapis.com/maps/api/place/details/json?place_id=${placeId}&fields=address_components,name&key=YOUR_API_KEY`)
  .then(res => res.json())
  .then(data => {
    // 筛选提取航站楼相关字段
    const terminalList = data.result.address_components.filter(item => 
      item.types.includes("sublocality_level_1") || item.types.includes("establishment")
    ).map(item => item.long_name);
    // 前端渲染航站楼信息
    renderTerminalInfo(terminalList);
  });

3. 兜底处理无航站楼数据的情况

如果Place Details返回结果中没有明确的航站楼字段,直接展示机场名称,或显示「暂无航站楼信息」,避免空内容。

为什么不推荐Nearby Search?

Nearby Search的keyword和type组合无法适配全球机场的航站楼命名规则(不同地区命名差异极大,比如Terminal 1、T1、中文航站楼名称等),而Place Details直接获取机场的官方结构化数据,一致性和准确性远高于模糊搜索。

额外优化建议

  • 缓存已查询过的place_id对应的航站楼信息,避免重复调用API,降低开销。
  • 若部分机场的航站楼信息未在Place Details中返回,可增加用户手动选择航站楼的输入框作为兜底方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 09:45:41