gpt4 book ai didi

javascript - Google 的 AutocompleteService 和 Autocomplete 使用相同的查询返回不同的结果

转载 作者:数据小太阳 更新时间:2023-10-29 04:49:05 26 4
gpt4 key购买 nike

我有以下查询,它是一个邮政编码:11368

当我创建一个自动完成对象(不是服务)时,我在顶部获得了邮政编码的实际区域:

enter image description here

这是代码:

  autocomplete = new google.maps.places.Autocomplete(
document.getElementById('PlaceSearch'),
{ types: ['(regions)'] });
[...]

这正是我想要的。但是,出于设计原因,我需要在站点上使用自定义自动完成系统,所以我已经转移到 AutocompleteService 这是同一事物的非 UI、纯代码版本(至少它是应该)。我创建了我的自动完成服务:

x = new google.maps.places.AutocompleteService();

我使用:

 x.getQueryPredictions({ input: key }, function (results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
[...]
});
});

然而,这是我从结果中得到的:

enter image description here

我正在使用 description 属性来显示条目,尽管这不是问题,因为返回位置中第一个条目的位置 ID 也完全不同,即使我输入的完全相同查询。

我也试过:

x.getQueryPredictions({ 输入:key, types: ['(regions)'] },

x.getQueryPredictions({ 输入:键,类型:['(geocode)'] },

x.getQueryPredictions({ 输入:key,类型:['geocode']}}

但是它根本没有任何效果。完全一样。我也看过 Different result between google maps Autocomplete and AutocompleteService但它的答案在 typeahead 级别回答了一个问题,而我的查询结果在 API 级别不正确,甚至没有点击 typeahead;我已经在自动完成服务的回调函数中使用调试器直接对其进行了检查。

然后我检查了两种情况下的网络请求,这是正在处理的请求:

https://maps.googleapis.com/maps/api/place/js/AutocompletionService.GetPredictions?1s11368&4sen-US&9s(regions)&15e3&key=XXXXXX&callback=_xdc_._qxy1y2&token=45006

它返回正确的 JSON。

这是返回错误 JSON 的请求:

https://maps.googleapis.com/maps/api/place/js/AutocompletionService.GetQueryPredictionsJson?1s11368&4sen-US&9s(regions)&15e3&key=XXXXXX&callback=_xdc_._38p24d&token=20471

它返回不正确的 JSON。据我所知,很明显我需要将 (regions) 作为 types 参数传入,但它仍然不正确。更荒谬的是,这两个查询之间的唯一区别是一个名为 token 的变量(我尝试用正确的 token 替换不正确的查询 token ,但我有 Google Maps JavaScript API 必须直接从 Google 的服务器下载。 错误)和回调函数,我确定这与返回的 JSON 无关。我唯一能想到的是,Google 在返回 token 时在其服务器上的初始化级别做了一些事情,该 token 绑定(bind)到该服务器/实例(因此是 token )。

我做错了什么以及如何以编程方式使用 Google 自己的预输入实现获得相同的结果?

最佳答案

我找到了解决方案。我调用的是 getQueryPredictions 而不是 getPredictions,它返回了不同的结果。我更改了我的代码以调用 getPredictions,它开始正常工作。

关于javascript - Google 的 AutocompleteService 和 Autocomplete 使用相同的查询返回不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41288861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com