1

我正在使用使用Google Maps API v3的自定義地圖應用程序。我遇到了一些問題。Google Maps API v3:爲什麼Google Maps API V3和Google Maps的搜索結果之間存在不一致?

我正在使用地方圖書館在我的地圖中心附近使用關鍵字搜索大半徑的地圖。

問題1:當我做「家得寶」的搜索沒有引號,我得到了「家」或「得寶」的結果,所以房地產經紀人回來,返回一個名爲「牙科倉庫」牙醫,等等。但是,這並不是在Google地圖本身中發生的。他們設法只返回家得寶而無需添加報價。當然,這個問題可以通過在用於請求的關鍵字中添加引號來解決,但我認爲我的用戶不一定知道要添加引號。我的問題是Google Maps知道默認只返回Home Depots,爲什麼他們的API不?

問題2:其他時間,根本找不到地方。有一家名爲「楔子」的比薩餐廳,搜索「楔子」根本沒有結果,但在谷歌地圖上搜索我的城市「楔子」會返回四個興趣點,包括餐館和兩個目標。

爲什麼不一致?

+0

https://developers.google.com/maps/faq#geocoder_differences – 2014-12-05 13:50:48

+0

@JoachimRohde我的問題不是關於地址解析,這是從地址到緯度/長度座標的轉換。我沒有得到任何迴應,搜索名爲「楔子」的餐廳,但谷歌地圖得到四個結果。 – MarkW 2014-12-05 13:58:20

回答

1

我認爲使用我的搜索收到的內容與使用Google地圖本身執行相同搜索時收到的內容之間存在差異的原因有幾個。

  1. 谷歌並沒有使用與他們的地圖API完全相同的請求,這與我收集的內容完全相同。

  2. 我相信他們在流行的搜索條件和地點上運用了一點巧妙。例如搜索'家得寶'沒有報價只返回家得寶,而不是牙科倉庫,油庫,家庭清潔解決方案等。因爲數百萬人搜索後,他們只需要家得寶。這個結果並不反映在他們的API結果中。

爲了解決這個問題,我增加了一倍的請求數量。首先,我做了一個keywordnearbySearch,然後我做了一個namenearbySearch。當然這會返回更多的結果,有些則無關緊要,但總的來說,與其中一個結果相比,結果要好得多。爲了完整起見,這從字面上看起來像:

request = { 
    keyword: keyword, 
    bounds: bounds 
} 

service.nearbySearch(request, searchHandler); 


request = { 
    name: keyword, 
    bounds: bounds 
} 

service.nearbySearch(request, searchHandler); 

在哪裏我已經宣佈requestkeywordboundsservicesearchHandler回調。

如果您正在努力從搜索中獲得您想要的結果,請嘗試加倍這樣的請求,我希望它適合您。