Android:Google Place API queryAutoComplete在API 17 - API 19上提供ZERO_RESULTS

时间:2017-01-17 09:41:21

标签: android google-places-api nativescript

以下请求在Web和Android API 17 +中正常工作:

搜索字符串:Bruņinieku ie

搜索网址:https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=Bruņinieku%20ie&key=xxx

搜索结果:

{
   "predictions" : [
      {
         "description" : "Bruņinieku iela, Rīga, Latvija",
         "id" : "6904e5bf90ff4e34b179aba2e28643efc9007017",
         "matched_substrings" : [
            {
               "length" : 13,
               "offset" : 0
            }
         ],
    ...

现在,如果我在最后添加另一个字母,请求仍然可以在web和Android API 21+中正常工作,但不能在API 17中使用 - API 19:

搜索字符串:Bruņinieku iel

搜索网址:https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=Bruņinieku%20iel&key=xxx

搜索结果(网络和API 21+):

{
   "predictions" : [
      {
         "description" : "Bruņinieku iela, Rīga, Latvija",
         "id" : "6904e5bf90ff4e34b179aba2e28643efc9007017",
         "matched_substrings" : [
            {
               "length" : 15,
               "offset" : 0
            }
         ],
    ...

搜索结果(API 17 - API 19):

{
    "predictions": [],
    "status": "ZERO_RESULTS"
}

WHY?绝对没有意义!起初我以为它可能是位置或半径或语言,所以删除了那些 - 仍然是同样的问题。这不应该发生,但它会发生。

1 个答案:

答案 0 :(得分:1)

Greeeeat,半天浪费了。事实证明,旧的API不会自动将未知符号(例如ņ)转换为utf-8。您必须使用encodeURIComponent(search_string)自行完成,这会产生网址:

https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=Bru%C5%86inieku%20iel&key=xxx