如何将Google地方信息网络服务仅限于英国?

时间:2016-12-19 16:33:53

标签: php google-maps google-places-api

我正在使用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。

例如,在上面的代码中,搜索“伦敦”会返回加拿大和其他地方的伦敦。我怎么能限制这个?我没有在文档中看到有关能够执行此操作的任何内容。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:3)

您应添加&components=country:GB参数,以限制您的搜索到英国。

文档中对此进行了描述 https://developers.google.com/places/web-service/autocomplete#place_autocomplete_requests

  

该国家/地区必须作为两个字符ISO 3166-1 Alpha-2兼容的国家/地区代码传递。