puwnz/google-maps-lib

用于与 Google API 通信的库

1.3.0 2024-09-11 20:38 UTC

README

概述

Google Lib 项目为您的 PHP 7.3+ 项目提供了 Google 地图集成。目前,此库仅启用了地理编码功能,因为我的需求仅在此部分,但您可以通过问题来推动您的需求。

安装

要安装此库,您只需使用 composer 即可。

composer require puwnz/google-maps-lib

集成

<?php

use Puwnz\GoogleMapsLib\Constants\SupportedLanguage;
use Puwnz\GoogleMapsLib\Constants\SupportedRegion;
use Puwnz\GoogleMapsLib\Geocode\QueryBuilder\GeocodeQueryBuilder;
use Puwnz\GoogleMapsLib\Geocode\Type\GeocodeComponentQueryType;
use Puwnz\GoogleMapsLib\GoogleServiceFactory;
use Symfony\Component\Validator\Validation;

$geocode = GoogleServiceFactory::create('google-api-key', 'path/log/file', 'http-version');

$components = [
    GeocodeComponentQueryType::COUNTRY => 'FR'
];

$geocodeQueryBuilder = new GeocodeQueryBuilder(Validation::createValidator());

$geocodeQueryBuilder->setAddress('10 rue de la Paix, Paris')
    ->setComponents($components)
    ->setLanguage(SupportedLanguage::FRENCH)
    ->setRegion(SupportedRegion::FR)
    ->setBounds([
        'northeast' => [
            'lat' => 0.0,
            'lng' => 1.0
        ],
        'southwest' => [
            'lat' => -0.0,
            'lng' => -1.0
        ]
    ]);

$response = $geocode->apply($geocodeQueryBuilder);

工厂的第一个参数是必需的,但日志路径文件和 http-version 不是。

http-version 应该是一个浮点数。

支持的语言

Google 并不接受他们 API 中的所有语言。您可以在这里找到所有受支持的语言 这里

如果您未设置语言,Google 可以返回部分地理编码响应,例如。

测试

此捆绑包由 PHPUnit 全部单元测试,代码覆盖率接近 100%

异常

此库中触发了一些异常,以下列表简要说明了原因。

  • \Puwnz\GoogleMapsLib\Geocode\Exception\GeocodeViolationsException 在您在某个构建器上设置错误数据时触发。例如,如果您在 \Puwnz\GoogleMapsLib\Geocode\QueryBuilder\AddressQueryBuilder 中未设置 bounds 中的 lat 键。

贡献

我们热爱贡献者!这是一个开源项目。如果您想贡献,请随时提出 PR!

许可证

Google Map Lib 在 MIT 许可证下。有关完整的版权和许可证信息,请阅读随源代码一起分发的 LICENSE 文件。