m1n64/google-places-api

Google Places Api

2.3.0 2016-02-05 00:00 UTC

This package is auto-updated.

Last update: 2024-09-20 19:38:04 UTC


README

这是一个针对 Google Places API Web Service 的 PHP 包装器

关于包

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

以下位置请求可用

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

安装

使用 composer 安装它

composer require m1n64/google-places-api

用法

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

use SKAgarwal\GoogleApi\PlacesApi;

步骤 2 - 初始化对象

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

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

步骤 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 的 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 — 要搜索的文本字符串,例如:"餐厅"。Google 地点服务将基于此字符串返回候选匹配项,并根据其感知的相关性对结果进行排序。
  • params - 可选参数 您可以在Google 的官方网页上找到所有可用的可选参数。

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

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

地点详情

placeDetails($placeId, $params = [])

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

地点自动完成

placeAutocomplete($input, $params = [])

  • input — 要搜索的文本字符串。地点自动完成服务将基于此字符串返回候选匹配项,并按其感知的相关性排序结果。
  • params - 可选参数 您可以在 Google 的官方网页上找到所有可用的可选参数 Google 官方网页

查询自动完成

queryAutocomplete($input, $params = [])

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

地点照片

photo($photoReference, $params = [])

  • params - 将地点添加到 Google 所需的键值参数集。您可以在有关地点添加的 Google 官方网页上查看字段 Google 官方网页

自定义头

withHeaders(array $headers)

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

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

要为每个调用设置自定义头,您可以将第三个参数作为头传递给类构造函数。

注意:对于 Laravel 用户,您可以在配置文件中设置此内容,键为 headers

其他方法

getStatus()

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

getKey()

这将返回请求中使用的 API KEY

setKey($key)

这将设置 API KEY

verifySSL($verifySSL = true)

您可以将 false 传递以禁用 SSL 证书验证。

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

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

异常

Google 地点 API 可能会根据给定的 $params 或响应抛出各种异常,并位于 SKAgarwal\GoogleApi\Exceptions 命名空间中。

  • GooglePlacesApiException 在没有提供 API KEY$params 无效时抛出。 注意:这是前面异常的父类。
  • 当响应 statusINVALID_REQUEST 时抛出 InvalidRequestException
  • 当响应 statusOVER_QUERY_LIMIT 时抛出 OverQueryLimitException
  • 当响应 statusREQUEST_DENIED 时抛出 RequestDeniedException
  • 当响应 statusUNKNOWN_ERROR 时抛出 UnknownErrorException
  • 当无法确定响应时抛出 NotImplementedException

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

贡献

请随意报告问题或发起Pull Requests。如果您觉得这份文档有改进的空间,请随时为它开启一个问题。

许可证

Google 地点 API 是开源软件,遵循 MIT 许可协议