我正在使用Google商家信息网络服务API来推广自己的自动填充功能。
https://developers.google.com/places/web-service/autocomplete
我正在使用JS来获取我使用PHP制作的服务器端请求。
<?php
header('Content-Type: application/json; charset=utf-8');
$api = 'https://maps.googleapis.com/maps/api/place/autocomplete/json';
$key = 'api-key-goes-here'; // Use your own API key here.
$input = 'London'; // A hard-coded example.
$requestPath = "{$api}?&key={$key}&input={$input}";
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $requestPath,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
$data = ($err) ? $err : $response;
echo $data;
?>
所有这些都很有效,我得到了正确的JSON响应。
但是,我从全局搜索中获得结果,理想情况下我只想将其限制为英国/ GB。
例如,在上面的代码中,搜索“伦敦”会返回加拿大和其他地方的伦敦。我怎么能限制这个?我没有在文档中看到有关能够执行此操作的任何内容。
非常感谢你的帮助!
答案 0 :(得分:3)
您应添加&components=country:GB
参数,以限制您的搜索到英国。
文档中对此进行了描述 https://developers.google.com/places/web-service/autocomplete#place_autocomplete_requests
该国家/地区必须作为两个字符ISO 3166-1 Alpha-2兼容的国家/地区代码传递。