puwnz / google-maps-lib
用于与 Google API 通信的库
1.3.0
2024-09-11 20:38 UTC
Requires
- php: >=7.3
- ext-intl: *
- ext-json: *
- monolog/monolog: ^1|^2|^3
- symfony/cache: ^4.0|^5.0|^6.0
- symfony/http-client: ^4.0|^5.0|^6.0
- symfony/property-access: ^5.4|^6.0
- symfony/serializer: ^4.0|^5.0|^6.0
- symfony/validator: ^4.0|^5.0|^6.0
- webmozart/assert: ^1.11
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.62
- phpunit/phpunit: ^9.6
- rector/rector: ^1.2
This package is auto-updated.
Last update: 2024-09-11 20:42:16 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 文件。