2017-02-16 108 views
0

我使用的Google Maps Geocoding API web service,和我使用的components參數結果限制爲「倫敦」。我的網址查詢是在這裏:谷歌地圖的地理編碼API組件限制

https://maps.googleapis.com/maps/api/geocode/json?address=<address>&components=administrative_area:london, united kingdom

這工作超好,我只得到成果,這是在倫敦之內。然而,如果我要求倫敦絕對不存在的東西(例如「曼徹斯特」),我只能獲得與「大倫敦」相關的默認回報。我寧願它只是返回ZERO_RESULTS狀態。有沒有辦法指定這個?

P.S我曾嘗試使用region參數,但這並不緊張,因爲我希望它是。

回答

0

使用信息https://developers.google.com/maps/documentation/geocoding/intro#ComponentFiltering

可以過濾發現一個城市(地區),國家作爲兩個單獨的濾波器組件,並且這些可以通過管道分隔(|)符號。該國是爲了覆蓋全市倫敦的ISO 3166-1國家代碼[https://en.wikipedia.org/wiki/ISO_3166-1]因此GB

因此,這種格式可以使用:

https://maps.googleapis.com/maps/api/geocode/json?address=<address>&components=locality:London|country:UK 

考慮到這一點,並解決您的具體問題,根據 https://developers.google.com/maps/documentation/geocoding/intro#ComponentFiltering

過濾器值支持拼寫校正的相同的方法和 與其他地理編碼請求部分匹配。如果一個地理編碼結果是 一個部件過濾器部分匹配其將包含在響應一個partial_match 字段。

所以看起來它總是試圖找到部分匹配時,有沒有完全匹配,這不能被禁用不幸。

但是,如果你在結果集中做"partial_match" : true檢查,你可以過濾掉在你的代碼與響應涉及這樣的結果。

總結

這種格式似乎給出結果,而"partial_match" : true如果地址是「好」

https://maps.googleapis.com/maps/api/geocode/json?address=<address>&components=locality:London|country:UK 

,它將使您篩選在你的代碼爲"partial_match" : true響應排除虛假結果。例如,使用一個地址 '曼徹斯特':

https://maps.googleapis.com/maps/api/geocode/json?address=Manchester&components=locality:London|country:UK