簡體   English   中英

谷歌地圖 API - 自動完成建議缺少一些位置/地點

[英]Google Maps API - Autocomplete Suggestions are missing some locations/places

我們在 Rails 應用程序中使用 Google Maps 的 API 和 VueJS 前端。

我認為上述任何一項都不重要,因為我已經檢查了瀏覽器中的 URL JSON 響應並且它缺少位置。 它似乎適用於城市名稱、郵政編碼 - 但它顯示的建議與我在谷歌日歷中輸入位置字段時顯示的建議不同。

請求 URL(移除了明顯的令牌/身份驗證密鑰):-

https://maps.googleapis.com/maps/api/place/autocomplete/json?types=geocode&input=Ritz%20London

回復:-

{
   "predictions" : [
      {
         "description" : "Ritz Parade, London, UK",
         "matched_substrings" : [
            {
               "length" : 4,
               "offset" : 0
            },
            {
               "length" : 6,
               "offset" : 13
            }
         ],
         "place_id" : "EhdSaXR6IFBhcmFkZSwgTG9uZG9uLCBVSyIuKiwKFAoSCbu6Pcob",
         "reference" : "EhdSaXR6IFBhcmFkZSwgTG9uZG9uLCBVSyIuKiwKFAoSCbu6PcobEnZIEbPVf1MZfE",
         "structured_formatting" : {
            "main_text" : "Ritz Parade",
            "main_text_matched_substrings" : [
               {
                  "length" : 4,
                  "offset" : 0
               }
            ],
            "secondary_text" : "London, UK",
            "secondary_text_matched_substrings" : [
               {
                  "length" : 6,
                  "offset" : 0
               }
            ]
         },
         "terms" : [
            {
               "offset" : 0,
               "value" : "Ritz Parade"
            },
            {
               "offset" : 13,
               "value" : "London"
            },
            {
               "offset" : 21,
               "value" : "UK"
            }
         ],
         "types" : [ "route", "geocode" ]
      }
   ],
   "status" : "OK"
}

倫敦的實際 Ritz Hotel 沒有顯示在這里,但它清楚地顯示在我的 Google 日歷位置搜索中。

我目前無法訪問我們的 API 控制台,但可以想象這是一個需要在 API 控制台中打開的設置,或者作為我們請求中的附加參數傳遞? 還是我找錯地方了?

執行相同的搜索並使用establishment作為types參數會返回您可能想要的結果。

根據類型文檔

establishment指示 Place Autocomplete 服務僅返回業務結果。

請求types=establishmenthttps://maps.googleapis.com/maps/api/place/autocomplete/json?types=establishment&input=Ritz%20London&language=en&key=your_api_key_here

{
   "predictions" : [
      {
         "description" : "The Ritz London, Piccadilly, London, UK",
         "matched_substrings" : [
            {
               "length" : 4,
               "offset" : 4
            },
            {
               "length" : 6,
               "offset" : 29
            }
         ],
         "place_id" : "ChIJV8gP0ykFdkgRFEAEHoE1YVk",
         "reference" : "ChIJV8gP0ykFdkgRFEAEHoE1YVk",
         "structured_formatting" : {
            "main_text" : "The Ritz London",
            "main_text_matched_substrings" : [
               {
                  "length" : 4,
                  "offset" : 4
               }
            ],
            "secondary_text" : "Piccadilly, London, UK",
            "secondary_text_matched_substrings" : [
               {
                  "length" : 6,
                  "offset" : 12
               }
            ]
         },
         "terms" : [
            {
               "offset" : 0,
               "value" : "The Ritz London"
            },
            {
               "offset" : 17,
               "value" : "Piccadilly"
            },
            {
               "offset" : 29,
               "value" : "London"
            },
            {
               "offset" : 37,
               "value" : "UK"
            }
         ],
         "types" : [ "lodging", "restaurant", "food", "point_of_interest", "establishment" ]
      },
      {
         "description" : "Ritz, London, UK",
         "matched_substrings" : [
            {
               "length" : 4,
               "offset" : 0
            },
            {
               "length" : 6,
               "offset" : 6
            }
         ],
         "place_id" : "ChIJ1wd5z6gFdkgRUdbMn3pMiKM",
         "reference" : "ChIJ1wd5z6gFdkgRUdbMn3pMiKM",
         "structured_formatting" : {
            "main_text" : "Ritz",
            "main_text_matched_substrings" : [
               {
                  "length" : 4,
                  "offset" : 0
               }
            ],
            "secondary_text" : "London, UK",
            "secondary_text_matched_substrings" : [
               {
                  "length" : 6,
                  "offset" : 0
               }
            ]
         },
         "terms" : [
            {
               "offset" : 0,
               "value" : "Ritz"
            },
            {
               "offset" : 6,
               "value" : "London"
            },
            {
               "offset" : 14,
               "value" : "UK"
            }
         ],
         "types" : [ "laundry", "point_of_interest", "establishment" ]
      },
      {
         "description" : "Ritz London Cigars, Piccadilly, London, UK",
         "matched_substrings" : [
            {
               "length" : 11,
               "offset" : 0
            }
         ],
         "place_id" : "ChIJa_Ih9V8FdkgRfNt8eaSIXuw",
         "reference" : "ChIJa_Ih9V8FdkgRfNt8eaSIXuw",
         "structured_formatting" : {
            "main_text" : "Ritz London Cigars",
            "main_text_matched_substrings" : [
               {
                  "length" : 11,
                  "offset" : 0
               }
            ],
            "secondary_text" : "Piccadilly, London, UK"
         },
         "terms" : [
            {
               "offset" : 0,
               "value" : "Ritz London Cigars"
            },
            {
               "offset" : 20,
               "value" : "Piccadilly"
            },
            {
               "offset" : 32,
               "value" : "London"
            },
            {
               "offset" : 40,
               "value" : "UK"
            }
         ],
         "types" : [ "point_of_interest", "store", "establishment" ]
      },
      {
         "description" : "Hiro Miyoshi at The Ritz London, The Ritz, Piccadilly, London, UK",
         "matched_substrings" : [
            {
               "length" : 11,
               "offset" : 20
            }
         ],
         "place_id" : "ChIJcXuw6tkFdkgR89PgYYTudzU",
         "reference" : "ChIJcXuw6tkFdkgR89PgYYTudzU",
         "structured_formatting" : {
            "main_text" : "Hiro Miyoshi at The Ritz London",
            "main_text_matched_substrings" : [
               {
                  "length" : 11,
                  "offset" : 20
               }
            ],
            "secondary_text" : "The Ritz, Piccadilly, London, UK"
         },
         "terms" : [
            {
               "offset" : 0,
               "value" : "Hiro Miyoshi at The Ritz London"
            },
            {
               "offset" : 33,
               "value" : "The Ritz"
            },
            {
               "offset" : 43,
               "value" : "Piccadilly"
            },
            {
               "offset" : 55,
               "value" : "London"
            },
            {
               "offset" : 63,
               "value" : "UK"
            }
         ],
         "types" : [
            "beauty_salon",
            "hair_care",
            "spa",
            "point_of_interest",
            "store",
            "establishment"
         ]
      },
      {
         "description" : "Ritz Restaurant, King Street, London, UK",
         "matched_substrings" : [
            {
               "length" : 4,
               "offset" : 0
            },
            {
               "length" : 6,
               "offset" : 30
            }
         ],
         "place_id" : "ChIJOVU94EkOdkgRqhr357HTODs",
         "reference" : "ChIJOVU94EkOdkgRqhr357HTODs",
         "structured_formatting" : {
            "main_text" : "Ritz Restaurant",
            "main_text_matched_substrings" : [
               {
                  "length" : 4,
                  "offset" : 0
               }
            ],
            "secondary_text" : "King Street, London, UK",
            "secondary_text_matched_substrings" : [
               {
                  "length" : 6,
                  "offset" : 13
               }
            ]
         },
         "terms" : [
            {
               "offset" : 0,
               "value" : "Ritz Restaurant"
            },
            {
               "offset" : 17,
               "value" : "King Street"
            },
            {
               "offset" : 30,
               "value" : "London"
            },
            {
               "offset" : 38,
               "value" : "UK"
            }
         ],
         "types" : [
            "cafe",
            "restaurant",
            "food",
            "point_of_interest",
            "store",
            "establishment"
         ]
      }
   ],
   "status" : "OK"
}

在同一文檔頁面上:

如果未指定任何內容,則返回所有類型 通常只允許使用一種類型。 例外是您可以安全地混合地理編碼和機構類型,但請注意,這與不指定類型具有相同的效果。

沒有指定types的請求: https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Ritz%20London&language=en&key=your_api_key_here

{
   "predictions" : [
      {
         "description" : "The Ritz London, Piccadilly, London, UK",
         "matched_substrings" : [
            {
               "length" : 4,
               "offset" : 4
            },
            {
               "length" : 6,
               "offset" : 29
            }
         ],
         "place_id" : "ChIJV8gP0ykFdkgRFEAEHoE1YVk",
         "reference" : "ChIJV8gP0ykFdkgRFEAEHoE1YVk",
         "structured_formatting" : {
            "main_text" : "The Ritz London",
            "main_text_matched_substrings" : [
               {
                  "length" : 4,
                  "offset" : 4
               }
            ],
            "secondary_text" : "Piccadilly, London, UK",
            "secondary_text_matched_substrings" : [
               {
                  "length" : 6,
                  "offset" : 12
               }
            ]
         },
         "terms" : [
            {
               "offset" : 0,
               "value" : "The Ritz London"
            },
            {
               "offset" : 17,
               "value" : "Piccadilly"
            },
            {
               "offset" : 29,
               "value" : "London"
            },
            {
               "offset" : 37,
               "value" : "UK"
            }
         ],
         "types" : [ "lodging", "restaurant", "food", "point_of_interest", "establishment" ]
      },
      {
         "description" : "Ritz, London, UK",
         "matched_substrings" : [
            {
               "length" : 4,
               "offset" : 0
            },
            {
               "length" : 6,
               "offset" : 6
            }
         ],
         "place_id" : "ChIJ1wd5z6gFdkgRUdbMn3pMiKM",
         "reference" : "ChIJ1wd5z6gFdkgRUdbMn3pMiKM",
         "structured_formatting" : {
            "main_text" : "Ritz",
            "main_text_matched_substrings" : [
               {
                  "length" : 4,
                  "offset" : 0
               }
            ],
            "secondary_text" : "London, UK",
            "secondary_text_matched_substrings" : [
               {
                  "length" : 6,
                  "offset" : 0
               }
            ]
         },
         "terms" : [
            {
               "offset" : 0,
               "value" : "Ritz"
            },
            {
               "offset" : 6,
               "value" : "London"
            },
            {
               "offset" : 14,
               "value" : "UK"
            }
         ],
         "types" : [ "laundry", "point_of_interest", "establishment" ]
      },
      {
         "description" : "Ritz London Cigars, Piccadilly, London, UK",
         "matched_substrings" : [
            {
               "length" : 11,
               "offset" : 0
            }
         ],
         "place_id" : "ChIJa_Ih9V8FdkgRfNt8eaSIXuw",
         "reference" : "ChIJa_Ih9V8FdkgRfNt8eaSIXuw",
         "structured_formatting" : {
            "main_text" : "Ritz London Cigars",
            "main_text_matched_substrings" : [
               {
                  "length" : 11,
                  "offset" : 0
               }
            ],
            "secondary_text" : "Piccadilly, London, UK"
         },
         "terms" : [
            {
               "offset" : 0,
               "value" : "Ritz London Cigars"
            },
            {
               "offset" : 20,
               "value" : "Piccadilly"
            },
            {
               "offset" : 32,
               "value" : "London"
            },
            {
               "offset" : 40,
               "value" : "UK"
            }
         ],
         "types" : [ "point_of_interest", "store", "establishment" ]
      },
      {
         "description" : "Hiro Miyoshi at The Ritz London, The Ritz, Piccadilly, London, UK",
         "matched_substrings" : [
            {
               "length" : 11,
               "offset" : 20
            }
         ],
         "place_id" : "ChIJcXuw6tkFdkgR89PgYYTudzU",
         "reference" : "ChIJcXuw6tkFdkgR89PgYYTudzU",
         "structured_formatting" : {
            "main_text" : "Hiro Miyoshi at The Ritz London",
            "main_text_matched_substrings" : [
               {
                  "length" : 11,
                  "offset" : 20
               }
            ],
            "secondary_text" : "The Ritz, Piccadilly, London, UK"
         },
         "terms" : [
            {
               "offset" : 0,
               "value" : "Hiro Miyoshi at The Ritz London"
            },
            {
               "offset" : 33,
               "value" : "The Ritz"
            },
            {
               "offset" : 43,
               "value" : "Piccadilly"
            },
            {
               "offset" : 55,
               "value" : "London"
            },
            {
               "offset" : 63,
               "value" : "UK"
            }
         ],
         "types" : [
            "beauty_salon",
            "hair_care",
            "spa",
            "point_of_interest",
            "store",
            "establishment"
         ]
      },
      {
         "description" : "Ritz Parade, London, UK",
         "matched_substrings" : [
            {
               "length" : 4,
               "offset" : 0
            },
            {
               "length" : 6,
               "offset" : 13
            }
         ],
         "place_id" : "EhdSaXR6IFBhcmFkZSwgTG9uZG9uLCBVSyIuKiwKFAoSCbu6PcobEnZIEbPVf1MZfEocEhQKEgnz8xe3Wxt2SBEKsgA5eS6RSQ",
         "reference" : "EhdSaXR6IFBhcmFkZSwgTG9uZG9uLCBVSyIuKiwKFAoSCbu6PcobEnZIEbPVf1MZfEocEhQKEgnz8xe3Wxt2SBEKsgA5eS6RSQ",
         "structured_formatting" : {
            "main_text" : "Ritz Parade",
            "main_text_matched_substrings" : [
               {
                  "length" : 4,
                  "offset" : 0
               }
            ],
            "secondary_text" : "London, UK",
            "secondary_text_matched_substrings" : [
               {
                  "length" : 6,
                  "offset" : 0
               }
            ]
         },
         "terms" : [
            {
               "offset" : 0,
               "value" : "Ritz Parade"
            },
            {
               "offset" : 13,
               "value" : "London"
            },
            {
               "offset" : 21,
               "value" : "UK"
            }
         ],
         "types" : [ "route", "geocode" ]
      }
   ],
   "status" : "OK"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM