puwnz/google-maps-package

Laravel 对 Google Maps 库的封装。

dev-master 2020-06-23 10:09 UTC

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);
    }
}