puwnz / google-maps-package
Laravel 对 Google Maps 库的封装。
dev-master
2020-06-23 10:09 UTC
Requires
- php: ^7.3
- ext-intl: *
- illuminate/support: ~5.4|^6.0|^7.0
- puwnz/google-maps-lib: ^0.3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
This package is auto-updated.
Last update: 2024-09-23 20:00:40 UTC
README
概述
Google Maps Lib 项目为 Laravel 6+ 和 PHP 7.3+ 项目提供 Google Map Lib 集成。目前,这个库仅启用了地理编码功能,因为我的需求只在这里,但您可以打开 问题 来推动您的需求。
安装
要安装此库,您只需使用 composer
composer require puwnz/google-maps-package
集成
包注册
添加 Google Maps 环境变量
编辑您的 .env 文件(位于您的 Laravel 项目根目录),并添加您的 Google Maps API 密钥、日志文件和与 Google 通信的 HTTP 版本。
GOOGLE_MAPS_API_KEY=MyApiKey
GOOGLEMAPS_LOG_FILE=./storage/log/geocode.log # optional
GOOGLE_MAPS_HTTP_VERSION=2.0 # optional
配置您的 Laravel 提供者以使用此包装器
编辑 config/app.php 并在 providers 部分
'providers' => [ // the other Provider /* * Package Service Providers... */ \Puwnz\GoogleMapsPackage\GoogleMapsServiceProvider::class, ],
如何使用此包装器
您可以直接在 Controller 中注入它,如下所示
<?php namespace App\Http\Controllers; use Puwnz\GoogleMapsLib\Constants\SupportedLanguage; use Puwnz\GoogleMapsLib\Geocode\QueryBuilder\AddressQueryBuilder; use Puwnz\GoogleMapsLib\Geocode\Type\GeocodeComponentQueryType; use Puwnz\GoogleMapsPackage\GoogleMaps; use Symfony\Component\Validator\Validation; class IndexController extends Controller { public function index(GoogleMaps $googleMaps) { $components = [ GeocodeComponentQueryType::COUNTRY => 'FR' ]; $addressBuilder = new AddressQueryBuilder(Validation::createValidator()); $addressBuilder->setAddress('10 rue de la Paix, Paris') ->setComponents($components) ->setLanguage(SupportedLanguage::FRENCH) ->setBounds([ 'northeast' => [ 'lat' => 0.0, 'lng' => 1.0 ], 'southwest' => [ 'lat' => -0.0, 'lng' => -1.0 ] ]); $response = $googleMaps->geocodeClient->getGeocodeByBuilder($addressBuilder); } }