mustafakucuk / google-places
这是一个简单的PHP包装器,用于新的Google Places API,简化了进行地点搜索、检索详情和使用自动完成功能的过程。
v1.0.1
2024-09-02 11:04 UTC
Requires (Dev)
- guzzlehttp/guzzle: ^7.9
README
此PHP包装器为与Google Places API交互提供了一个易于使用的接口。它简化了进行地点搜索、地点详情和自动完成功能的API请求过程。包装器处理API身份验证、请求格式化和响应解析,允许开发人员以最少的努力将Google Places功能集成到他们的PHP应用程序中。
功能
- 附近搜索:在给定的半径内搜索指定位置附近的地点。
- 地点详情:使用地点ID检索特定地点的详细信息。
- 文本搜索:根据文本查询搜索地点。
- 自动完成:根据用户的部分输入获取地点建议。
安装
要使用此包装器,您需要安装Composer。
composer require mustafakucuk/google-places
用法
初始化
在您可以进行任何请求之前,您需要使用Google Places API密钥初始化客户端
use GooglePlaces\Client; $client = new Client('your_api_key_here');
附近搜索
在给定半径内搜索指定位置附近的地点
$location = '37.7749,-122.4194'; // Latitude, Longitude $radius = 500; // Radius in meters $params = [ 'includedTypes' => ['restaurant'], 'fields' => ['places.id', 'places.displayName'], ]; $places = $client->near_by_search($location, $radius, $params); print_r($places);
地点详情
使用地点ID检索特定地点的详细信息
$place_id = 'ChIJlYL0Wa-BhYARJi6qr49Ncv1'; $fields = ['displayName', 'id', 'googleMapsUri', 'formattedAddress']; $place_details = $client->get_place($place_id, $fields); print_r($place_details);
文本搜索
根据文本查询搜索地点
$query = 'restaurants in Sydney'; $fields = ['places.id', 'places.displayName']; $places = $client->search_text($query, $fields); print_r($places);
自动完成
根据用户的部分输入获取地点建议
$input = 'Pizza'; $params = [ 'includedPrimaryTypes' => ['mexican_restaurant'], ]; $suggestions = $client->autocomplete($input, $params); print_r($suggestions);
方法
prepare_fields(array|string $fields, bool $clean_prefix = false): string
格式化和准备API请求的字段参数。
- $fields:要在API请求中包含的字段。可以是数组或以逗号分隔的字符串。如果为空,则默认为
'*'。 - $clean_prefix:可选。如果为
true,则从字段名称中删除places.前缀。默认为false。 - 返回:格式化、以逗号分隔的字段字符串。
near_by_search(string $location, int $radius, array $params = []): array
执行地点的附近搜索。
- $location:表示纬度和经度的以逗号分隔的字符串(例如,
"37.7749,-122.4194")。 - $radius:搜索地点的半径(以米为单位)。
- $params:可选。API请求的附加参数。
- 返回:地点的关联数组。
get_place(string $place_id, array $fields = []): array
使用地点ID检索特定地点的详细信息。
- $place_id:地点的唯一标识符。
- $fields:可选。要包含在响应中的字段数组。
- 返回:包含地点详情的关联数组。
search_text(string $query, array $fields = []): array
执行基于文本的地点搜索。
- $query:搜索查询文本。
- $fields:可选。要包含在响应中的字段数组。
- 返回:地点的关联数组。
autocomplete(string $input, array $params = []): array
根据用户输入提供自动完成建议。
- $input:用户的部分文本输入。
- $params:可选。API请求的附加参数。
- 返回:自动完成建议的数组。
错误处理
当包装器遇到错误时,它会抛出异常。请确保在您的实现中处理异常。
try { $places = $client->near_by_search($location, $radius, $params); } catch (\Exception $e) { // Handle errors }