mustafakucuk/google-places

这是一个简单的PHP包装器,用于新的Google Places API,简化了进行地点搜索、检索详情和使用自动完成功能的过程。

v1.0.1 2024-09-02 11:04 UTC

This package is auto-updated.

Last update: 2024-09-02 11:06:36 UTC


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
}