m1n64 / google-places-api
Google Places Api
Requires
- php: ^7.2.5|^8.0
- ext-json: *
- guzzlehttp/guzzle: ^6.5.7|^7.4.4|^7.2|^7.0
- illuminate/collections: ^8.83
Requires (Dev)
- phpunit/phpunit: ~4.0|^9.3
- skagarwal/reflection: ~1.0
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
(在下面的 可选参数 中描述),则至少需要包含keyword
、name
或types
之一。 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
无效时抛出。 注意:这是前面异常的父类。- 当响应
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。如果您觉得这份文档有改进的空间,请随时为它开启一个问题。
许可证
Google 地点 API 是开源软件,遵循 MIT 许可协议。