2016-07-11 123 views
1

我在我的PHP應用程序中搜索歐洲位置的表格:德國,法國,波蘭,捷克共和國,西班牙,奧地利,羅馬尼亞,意大利。谷歌地圖:在特定縣搜索

這是我的基本查詢:

$address = "https://maps.googleapis.com/maps/api/geocode/json?address={$input}"; 

如果用戶試圖找到例如「曼海姆」,它應該返回德國曼海姆。 相反,它在美國賓夕法尼亞州返回一個點。我嘗試添加該地址組件限制:&components=administrative_area:EU,但這是不可靠的,因爲不是尋找曼海姆德國,它指向一個地方相距300公里

https://www.google.ro/maps/dir/50.5320001,6.6364339/Mannheim/@50.0388399,8.4546225,7.25z/data=!4m8!4m7!1m0!1m5!1m1!1s0x4797cc24518e3f45:0xb1e4fe7aa406e687!2m2!1d8.4660395!2d49.4874592?hl=en

如果我追加, Germany

$address = "https://maps.googleapis.com/maps/api/geocode/json?address={$input}, Germany"; 

那麼迴應是正確的。

有沒有辦法指定一些國家的搜索應該發生?

不得已是讓每個國家單獨的搜索,但是這將是很慢給予〜10-12國家我搜索

+1

檢查這個http://stackoverflow.com/questions/33387993/how-do-i-restrict-a-google-geocode-query-to-multiple-countries – jakob

回答

0

通過限制國家限制這樣的低於谷歌的搜索結果:

var options = { 
     componentRestrictions: {country: 'DE'} 
     }; 

並將選項參數放置在自動完成或您正在使用的其他功能中。

var autocomplete = new google.maps.places.Autocomplete(input,options); 
+0

這對於一個國家工作正常,但我想在一個請求中匹配多個國家/地區的地點。正如jakob指出的那樣,這還不可能。 – cili