skagarwal/google-places-api

2.2.0 2016-02-05 00:00 UTC

README

Latest Stable Version Latest Unstable Version Total Downloads License

Google Places API.

这是一个针对 Google Places API Web Service 的 PHP 封装。并且与 Laravel 框架 兼容。

关于包

只需两行代码,您就可以请求任何 Google Places API 功能。无需手动执行任何 curl 请求。

以下地方请求可用

  • 地方搜索 此服务根据用户的地理位置或搜索字符串提供地点列表。
  • 地方详情 此服务提供有关特定地点的更详细信息,包括用户评论。
  • 地方自动完成 此服务用于在您键入时自动填写地点的名称和/或地址。
  • 查询自动完成 此服务用于提供基于文本的地理搜索的查询预测服务,通过在您键入时返回建议查询。
  • 地方照片 这为您提供了访问 Google 地点数据库中存储的数百万张照片的机会
  • 自定义头部 设置自定义头部。
  • 附加方法 可用附加方法。

安装

使用 composer 安装它

composer require skagarwal/google-places-api

用法

Laravel 用户可以查看 Laravel 用法 部分

步骤 1 - 使用命名空间导入类

use SKAgarwal\GoogleApi\PlacesApi;

步骤 2 - 初始化对象

$googlePlaces = new PlacesApi('API KEY');

注意:您还可以在初始化类后使用 setKey('KEY') 方法设置 API 密钥。您可以与任何其他方法一起链式调用。

步骤 3 - 开始使用 API。

示例

$response = $googlePlaces->placeAutocomplete('some Place');

如前所述,只需两行代码即可进行任何请求。

完整示例

use SKAgarwal\GoogleApi\PlacesApi;


function () {
  $googlePlaces = new PlacesApi('API_KEY') # line 1
  $response = $googlePlaces->placeAutocomplete('some input'); # line 2
}

与 Laravel 一起使用

对于 Laravel 5.5

自动发现已添加。

对于 Laravel 5.4 及以下版本

步骤 1

config\app.php 中设置服务提供者和外观

'providers' => [
....
....
SKAgarwal\GoogleApi\ServiceProvider::class,
];

'aliases' => [
....
....
'GooglePlaces' => SKAgarwal\GoogleApi\Facade::class,
];

步骤 2

使用以下 artisan 命令发布配置文件

php artisan vendor:publish --provider="SKAgarwal\GoogleApi\ServiceProvider"

这将创建 config 目录中的 google.php 文件。

在此配置文件中设置 API 密钥

设置 3

使用外观开始使用包。

$response = GooglePlaces::placeAutocomplete('some city');

响应

返回的响应是 Laravel 的 Collection,因此您可以在其上执行任何可用的集合方法。

如果您不熟悉 Laravel 的 Collection,您可以在 此处 参考文档,或者您可以使用 response 作为简单的数组。

可用方法

地方搜索

nearbySearch($location, $radius = null, $params = [])

  • location — 获取地点信息的纬度/经度。这必须指定为纬度,经度。
  • 'radius' — 定义返回地点结果距离(单位:米)。最大允许半径为50,000米。请注意,如果指定了rankby=distance(在以下可选参数中描述),则不应包含radius
  • 如果指定了rankby=distance(在以下可选参数中描述),则至少需要包含keywordnametypes中的一个。
  • params - 可选参数 您可以在Google官方网页上查看所有可用的可选参数。

textSearch($query, $params = [])

  • query — 要搜索的文本字符串,例如:“restaurant”。Google地点服务将根据此字符串返回候选匹配项,并根据它们感知的相关性对结果进行排序。
  • params - 可选参数 您可以在Google官方网页上查看所有可用的可选参数。

findPlace($input, $inputType, $params = [])

  • input — 指定搜索地点的文本输入(例如,名称、地址或电话号码)。
  • inputType — 输入类型。这可以是以下两种之一:textquery或phonenumber。电话号码必须使用国际格式(以加号"+"开头,然后是国家代码,最后是电话号码本身)。
  • params - 可选参数 您可以在Google官方网页上查看所有可用的可选参数。

地点详情

placeDetails($placeId, $params = [])

  • placeId — 一个文本标识符,唯一标识地点,由地点搜索返回。
  • params - 可选参数 您可以在Google官方网页上查看所有可用的可选参数。

地点自动补全

placeAutocomplete($input, $params = [])

  • input — 要搜索的文本字符串。地点自动补全服务将根据此字符串返回候选匹配项,并根据它们感知的相关性对结果进行排序。
  • params - 可选参数 您可以在Google官方网页上查看所有可用的可选参数。

查询自动补全

queryAutocomplete($input, $params = [])

  • input — 要搜索的文本字符串。地点服务将根据此字符串返回候选匹配项,并根据它们感知的相关性对结果进行排序。
  • params - 可选参数 您可以在Google官方网页上查看所有可用的可选参数。

地点照片

photo($photoReference, $params = [])

自定义头部

withHeaders(array $headers)

在调用任何其他方法之前调用此方法以设置头部。您可以链接此方法。

new PlacesApi($key = null, $verifySSL = true, array $headers = [])

为了对每次调用都设置自定义头部,您可以在类构造函数中将第三个参数作为头部传递。

注意:对于Laravel用户,您可以在配置文件中通过键headers设置此选项。

其他方法

getStatus()

这将返回Google API发送的响应的状态。在发出任何请求后使用。

getKey()

这将返回与请求一起使用的API密钥

setKey($key)

这将设置API密钥

verifySSL($verifySSL = true)

您可以将参数设置为false来禁用SSL证书验证。

注意:对于Laravel用户,您可以在配置文件中设置此参数,键为verify_ssl

或者,您可以传递证书的路径。

异常

Google Places API可能会根据提供的$params或响应抛出各种异常,这些异常位于SKAgarwal\GoogleApi\Exceptions命名空间。

  • 当未提供API KEY$params无效时,会抛出GooglePlacesApiException注意:这是上述异常的父类。
  • 当响应的statusINVALID_REQUEST时,会抛出InvalidRequestException
  • 当响应的statusOVER_QUERY_LIMIT时,会抛出OverQueryLimitException
  • 当响应的statusREQUEST_DENIED时,会抛出RequestDeniedException
  • 当响应的statusUNKNOWN_ERROR时,会抛出UnknownErrorException
  • 当无法确定响应时,会抛出NotImplementedException

如果抛出了这些异常中的任何一个,您可以使用getErrorMessage()方法从响应中获取error_message字段(如果提供的话)。 注意: error_message字段并不保证总是存在,其内容可能会更改。

贡献

请随时报告问题或发起Pull Requests。如果您认为这份文档有任何改进之处,请随时为它创建一个问题。

许可证

Google Places API是开源软件,采用MIT许可证授权。