2016-07-11 126 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