我們在我們的網站中有一個嵌入式搜索欄,它利用Google Maps API提供建議和結果。當用戶搜索「紐約」,明確對建議點擊這表明他們正在尋找紐約州這個API調用時:當查詢Google Maps API時,我得到了「紐約,美國」和「紐約,紐約,美國」的相同結果
當他們只需鍵入「紐約」和按下回車鍵,或選擇其表示「紐約,紐約」的建議,該API調用時:
的問題是,返回的JSON是兩者相同的,回調的例外標題:
{
"results" : [
{
"address_components" : [
{
"long_name" : "New York",
"short_name" : "New York",
"types" : [ "locality", "political" ]
},
{
"long_name" : "New York",
"short_name" : "NY",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "New York, NY, USA",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 40.9175771,
"lng" : -73.70027209999999
},
"southwest" : {
"lat" : 40.4773991,
"lng" : -74.25908989999999
}
},
"location" : {
"lat" : 40.7127837,
"lng" : -74.0059413
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 40.9152555,
"lng" : -73.70027209999999
},
"southwest" : {
"lat" : 40.4960439,
"lng" : -74.25573489999999
}
}
},
"place_id" : "ChIJOwg_06VPwokRYv534QaPC8g",
"types" : [ "locality", "political" ]
}
],
"status" : "OK"
}
這會導致不正確的搜索結果提供給我們的用戶。具體而言,我們鍵入"types"
字段。由於兩份文件均指明用戶搜索「地點」,因此我們總是返回紐約市的結果,而不是紐約州可能已指定的結果。
這是Google Maps API中的錯誤嗎?我們是否需要指定一些標誌來強制更嚴格地解釋我們發送的內容?其他想法?
請注意,如果您在面向www.google.com/maps的用戶上執行此搜索,您將獲得紐約州而不是紐約市。我不太瞭解該頁面與API的不同之處,以瞭解其中發生了什麼。
請提供[最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve),它允許重現此問題。你如何得到這些結果?你使用的是什麼版本的API?我沒有得到相同的結果。 – MrUpsidown
@MrUpsidown我假設我的鏈接確實提供了重現問題的方法。我們在maps.googleapis.com/maps-api-v3/api/js/27/12/上使用該API的版本。此外,您可以在Google自己的API文檔中嘗試任何非紐約州狀態:https://developers.google.com/maps/documentation/geocoding/intro,您將看到該狀態。如果你輸入「紐約」或「紐約」,你會回到城市而不是國家。 – Necoras