【问题标题】:GoogleMaps Autocomplete (Places API)谷歌地图自动完成(Places API)
【发布时间】:2023-01-31 18:17:44
【问题描述】:

我正在尝试使用 Places API 自动完成功能获取机场。

查看 types 参数,如果这是一个机场,我会显示结果,否则显示为没有找到机场.

我想增强这个应用程序,我想在前端显示的每个机场对象中显示终端。

我找到了 nearby search within places API,但很难使用 keywordtype 创建搜索查询来获得全球所有机场的准确结果。

有谁知道使用 Places API 获取机场及其航站楼的最佳方式是什么?

【问题讨论】:

  • 你的意思是你想一次获取世界各地的机场?
  • 当有人搜索例如“都柏林机场”时,自动完成 api 不会这样,机场位置会连同他们的航站楼信息一起返回

标签: google-places-api google-nearby googleplacesautocomplete


【解决方案1】:

好吧,我不确定这是否真的是您的预期结果,但这是我尝试过的:

  1. 使用 Place Autocomplete 获取机场的 placeId

    https://maps.googleapis.com/maps/api/place/autocomplete/json?input=dublin&radius=500&types=airport&key=API_KEY

  2. 然后使用 placeId 执行地点详细信息请求并获取机场的 coordinates

    https://maps.googleapis.com/maps/api/place/details/json?place_id=ChIJLxmTab4RZ0gRVfMlt7UbElU&key=API_KEY

    这也会返回机场的overview,在这种情况下,结果显示:“

    “机场有 2 条跑道,2010 年启用了第二个航站楼,还有前往都柏林和其他城镇/城市的巴士。”

    1. 然后在获得 coordinates 之后,我用它来执行附近搜索请求。

      https://maps.googleapis.com/maps/api/place/nearbysearch/json?keyword=terminal&location=53.42644809999999,-6.249909799999999&radius=10000&key=API_KEY

    这设法让终端围绕它,我只是投入了一些半径,但我想它在其他位置应该有所不同。我也在其他机场尝试过这个,但不知何故奏效了。

    如果这对您的用例不起作用。我认为您可以做的另一件事是存储已知机场的坐标(请注意坐标/placeID 是我们唯一允许存储/缓存的东西。请参阅Specific Terms)。并创建一个对象,该对象还存储其相应终端的坐标。如果你想在世界各地的机场这样做,这将是一项广泛的工作。

    希望这可以帮助。

【讨论】:

  • 很好的答案,可能通过在附近搜索请求中用 rankby=distance 替换 radius=10000 来改进。请注意,机场航站楼是建筑物(类型:[“premise”]),在developers.google.com/maps/documentation/places/web-service/… 中不支持搜索类型,因此使用附近搜索查找它们的唯一方法是在使用此方法时使用关键字参数和 YMMV。
  • 非常感谢您对这个 @miguev 的额外见解。谢谢!
猜你喜欢
  • 2016-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多