javascript - 如何改进特定类型的 google-autocomplete 响应?
问题描述
目前,向 API 发出请求Google-autocomplete
并没有给我一个准确的响应。例如,我有一个案例,如果我尝试搜索“曼谷机场”,它应该返回我“素万那普机场”,但事实并非如此,因为我认为它没有足够的共同词(即使在对象内部他们返回指定我进行研究的国家)
我只能找到如果我添加一个名为radius=5000
& location=latlng
(在曼谷)的参数,那么就会找到,因为它会限制我正在研究的内容。
我注意到这也发生在其他结果中,有没有人知道我可能强调某种类型的结果的方法,例如airports
?查看文档(https://developers.google.com/places/web-service/autocomplete),他们说他们只有几种类型,它们不适用于airports
类型。我需要实现一些手动翻译吗?即:用户键入“曼谷机场”,它更改为“素万那普机场”,所以它发送这个请求而不是第一个?这似乎是很多工作。
我基本上已经尝试了文档中可用的所有参数
这是我请求的参数的当前代码:
request.open(
"GET",
"https://maps.googleapis.com/maps/api/place/queryautocomplete/json?&input=" +
encodeURIComponent(text) +
"&" +
Qs.stringify(this.props.query) +
"&stricbounds" +
"&location=" +
this.props.lat +
"," +
this.props.lng +
"&radius=5000," +
"&types=administrative_area_level_2"
);
google-autocomplete
我希望在搜索Bangkok airport
我想要输出Suvarnabhumi airport
以及其他情况时从整体上改进来自 api 的响应对象
解决方案
在尝试对查询自动完成进行示例搜索时: https ://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=Bangkok%20Airport&key=YOUR_API_KEY
我能够在预测中获得特定的机场:
Suvarnabhumi Airport (BKK), Soi Mu Ban Nakhon Thong 1, Nong Prue, Bang Phli District, Samut Prakan, Thailand
使用 Place IDChIJTydCFXdnHTERB3oVT1UZDRI
查询自动完成目前不支持特定类型的过滤器,例如airports
.
如果它适合您的用例,您还可以在此示例请求中使用Place Autocomplete :
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Bangkok%20Airport&key=YOUR_API_KEY
有一个现有的功能请求来过滤特定类型: https ://issuetracker.google.com/issues/35820774
我们建议您在此处评论您的用例或为其加注星标以接收更新。
推荐阅读
- javascript - 如何将 .NET 控制器中的数据显示到 React 视图?
- vue.js - VUEJS 检查用户是否喜欢帖子
- python - 403 禁止错误。无法访问此站点
- c# - VS 2008 MULTI LAYERS C# 项目在打开时出错
- c# - 将 NSubstitute 导入 Unity 项目
- sql - `DB2`中MS-SQL`QUOTENAME`的等价物是什么
- sql-server - 将递归存储过程包装在另一个过程中时出现“超出最大嵌套级别”错误
- php - mail() 无法发送带有 utf-8 的附件标题。带有 utf-8 内容的英文标题附件传递
- robotframework - 如何使用机器人框架验证文本,但除了一些文本之外
- angular - 算术运算的左侧必须是“any”、“number”、“bigint”类型或枚举类型