flarone/google-places-api

Google Places Api

1.0.1 2023-03-18 20:42 UTC

This package is auto-updated.

Last update: 2024-09-18 23:39:03 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 请求。

以下位置请求可用:

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

安装

使用 composer 安装

composer require flarone/google-places-api

用法

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

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

use Flarone\GoogleApi\PlacesApi;

步骤 2 - 初始化对象

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

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

步骤 3 - 开始使用 API。

示例

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

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

完整示例

use Flarone\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' => [
....
....
Flarone\GoogleApi\ServiceProvider::class,
];

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

步骤 2

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

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

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

在此配置文件中设置 API KEY

设置 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 — 要搜索的文本字符串,例如:“餐厅”。Google Places服务将根据此字符串返回候选匹配项,并根据其认为的相关性对结果进行排序。
  • 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 KEY

setKey($key)

这将设置API KEY

verifySSL($verifySSL = true)

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

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

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

异常

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

  • 当未提供 API KEY$params 无效时,会抛出 GooglePlacesApiException 异常。 注意: 这是前面异常的父类。
  • 当响应的 status 状态为 INVALID_REQUEST 时,会抛出 InvalidRequestException 异常。
  • 当响应的 status 状态为 OVER_QUERY_LIMIT 时,会抛出 OverQueryLimitException 异常。
  • 当响应的 status 状态为 REQUEST_DENIED 时,会抛出 RequestDeniedException 异常。
  • 当响应的 status 状态为 UNKNOWN_ERROR 时,会抛出 UnknownErrorException 异常。
  • 当无法确定响应时,会抛出 NotImplementedException 异常。

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

贡献

欢迎报告问题或发起 Pull Requests。如果您发现这份文档有任何可以改进的地方,请随时为此打开一个 issue。

许可证

此 Google Places Api 是从 skagarwal/google-places-api 分支出来的。Google Places Api 是开源软件,遵循 MIT 许可证