---
title: "Konfigurácia — Geolocation for Laravel | Roundly"
description: "Všetky konfiguračné kľúče, predvolené hodnoty a env premenné — pipeline, poskytovatelia, timeout, cache, udalosti, záložná poloha a služby."
url: https://roundly-consulting.com/sk/open-source/navody/geolocation-for-laravel/konfiguracia
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Geolocation for Laravel](https://roundly-consulting.com/sk/open-source/navody/geolocation-for-laravel.md)

# Konfigurácia

Publikuje sa do config/geolocation.php. Celý súbor so zbalenými blokmi rate\_limits jednotlivých poskytovateľov (tie opisuje časť Obmedzenie požiadaviek):

```php
use RoundlyConsulting\Geolocation\Providers\DefaultLocationProvider;
use RoundlyConsulting\Geolocation\Providers\GoogleProvider;
use RoundlyConsulting\Geolocation\Providers\IP2LocationProvider;
use RoundlyConsulting\Geolocation\Providers\IpInfoProvider;
use RoundlyConsulting\Geolocation\Providers\MaxMindDatabaseProvider;
use RoundlyConsulting\Geolocation\Providers\MaxMindWebServiceProvider;

return [
    'pipeline' => ['maxmind_database', 'maxmind_web', 'ip2location', 'ipinfo', 'google', 'default'],

    'providers' => [
        'maxmind_database' => MaxMindDatabaseProvider::class,
        'maxmind_web' => MaxMindWebServiceProvider::class,
        'ip2location' => IP2LocationProvider::class,
        'ipinfo' => IpInfoProvider::class,
        'google' => GoogleProvider::class,
        'default' => DefaultLocationProvider::class,
    ],

    'timeout' => env('GEOLOCATION_TIMEOUT', 5),

    'cache' => [
        'enabled' => env('GEOLOCATION_CACHE', false),
        'store' => env('GEOLOCATION_CACHE_STORE'),
        'ttl' => env('GEOLOCATION_CACHE_TTL', 86400),
        'prefix' => env('GEOLOCATION_CACHE_PREFIX', 'geolocation'),
    ],

    'events' => [
        'enabled' => env('GEOLOCATION_EVENTS', true),
    ],

    'default' => [
        'humanReadable' => env('GEOLOCATION_DEFAULT_HUMAN_READABLE', ''),
        'street' => env('GEOLOCATION_DEFAULT_STREET', ''),
        'city' => env('GEOLOCATION_DEFAULT_CITY', ''),
        'country' => env('GEOLOCATION_DEFAULT_COUNTRY_ISO_CODE', ''),
        'latitude' => env('GEOLOCATION_DEFAULT_LATITUDE', 0.0),
        'longitude' => env('GEOLOCATION_DEFAULT_LONGITUDE', 0.0),
    ],

    'services' => [
        'ipinfo' => [
            'url' => env('IPINFO_URL', 'https://ipinfo.io/'),
            'token' => env('IPINFO_TOKEN'),
            'retry' => env('IPINFO_RETRY_TIMES', 3),
            'retry_delay' => env('IPINFO_RETRY_DELAY_MS', 100),
            'rate_limits' => [/* see Rate limiting */],
        ],

        // Geocoding (address and coordinate lookups) calls the Geocoding API at "url";
        // distances call the Routes API (computeRouteMatrix) at "routes_url". The key
        // needs both APIs enabled.
        'google' => [
            'url' => env('GOOGLE_MAPS_URL', 'https://maps.googleapis.com/maps/api'),
            'routes_url' => env('GOOGLE_ROUTES_URL', 'https://routes.googleapis.com'),
            'key' => env('GOOGLE_MAPS_API_KEY'),
            'retry' => env('GOOGLE_MAPS_RETRY_TIMES', 3),
            'retry_delay' => env('GOOGLE_MAPS_RETRY_DELAY_MS', 100),
            'rate_limits' => [/* ... */],
        ],

        'ip2location' => [
            'url' => env('IP2LOCATION_URL', 'https://api.ip2location.io'),
            'key' => env('IP2LOCATION_API_KEY'),
            'retry' => env('IP2LOCATION_RETRY_TIMES', 2),
            'retry_delay' => env('IP2LOCATION_RETRY_DELAY_MS', 100),
            'rate_limits' => [/* ... */],
        ],

        'maxmind_web' => [
            'enabled' => env('MAXMIND_WEB_ENABLED', false),
            'base_url' => env('MAXMIND_WEB_URL', 'https://geoip.maxmind.com/geoip/v2.1'),
            'account_id' => env('MAXMIND_ACCOUNT_ID'),
            'license_key' => env('MAXMIND_LICENSE_KEY'),
            'service' => env('MAXMIND_WEB_SERVICE', 'city'), // city|country|insights
            'retry' => env('MAXMIND_WEB_RETRY_TIMES', 2),
            'retry_delay' => env('MAXMIND_WEB_RETRY_DELAY_MS', 100),
            'rate_limits' => [/* ... */],
        ],

        'maxmind_database' => [
            'enabled' => env('MAXMIND_DB_ENABLED', false),
            'path' => env('MAXMIND_DB_PATH', storage_path('app/geolocation/GeoLite2-City.mmdb')),

            // Used by the geolocation:db:update command to download the .mmdb file.
            'license_key' => env('MAXMIND_LICENSE_KEY'),
            'edition' => env('MAXMIND_DB_EDITION', 'GeoLite2-City'),
            'download_url' => env('MAXMIND_DB_DOWNLOAD_URL', 'https://download.maxmind.com/app/geoip_download'),
        ],
    ],
];
```

## Všetky kľúče

| Kľúč | Predvolené | Env | Účel |
| --- | --- | --- | --- |
| `pipeline` | všetkých šesť mien | — | Poradie mien poskytovateľov; vyhráva prvý neprázdny výsledok a nedostupný poskytovateľ sa preskočí. Pribalené meno, ktoré ste z providers odstránili, sa preskočí; akékoľvek iné nezaregistrované meno vyhodí UnknownProviderException a hodnota, ktorá nie je zoznam, InvalidConfigurationException. Prázdny zoznam prejde providers v ich vlastnom poradí. |
| `providers` | pribalená mapa | — | Meno → trieda poskytovateľa. Každá položka potrebuje meno; položka bez mena vyhodí UnknownProviderException. |
| `timeout` | 5 | `GEOLOCATION_TIMEOUT` | HTTP timeout v sekundách pre všetkých HTTP poskytovateľov, najmenej 1. Rovnaké pravidlo platí aj pre timeout nastavený pre jedno volanie (prázdny sa považuje za nenastavený, takže platí konfigurácia). |
| `cache.enabled` | false | `GEOLOCATION_CACHE` | Cachovať úspešné vyhľadávania a vzdialenosti (nikdy nie záložnú polohu). |
| `cache.store` | null | `GEOLOCATION_CACHE_STORE` | Cache store; null alebo prázdna hodnota = predvolený store. Hodnota, ktorá nie je reťazcom, vyhodí výnimku. |
| `cache.ttl` | 86400 | `GEOLOCATION_CACHE_TTL` | Platnosť cache v sekundách, najmenej 1. |
| `cache.prefix` | geolocation | `GEOLOCATION_CACHE_PREFIX` | Prefix kľúčov v cache. Prázdna hodnota sa považuje za nenastavenú (platí predvolená); hodnota, ktorá nie je reťazcom, vyhodí výnimku. |
| `events.enabled` | true | `GEOLOCATION_EVENTS` | Odosielať udalosti o výsledku. |
| `default.humanReadable` | '' | `GEOLOCATION_DEFAULT_HUMAN_READABLE` | Zobrazovaný názov záložnej polohy. |
| `default.street` | '' | `GEOLOCATION_DEFAULT_STREET` | Ulica záložnej polohy. |
| `default.city` | '' | `GEOLOCATION_DEFAULT_CITY` | Mesto záložnej polohy. |
| `default.country` | '' | `GEOLOCATION_DEFAULT_COUNTRY_ISO_CODE` | ISO kód krajiny záložnej polohy. |
| `default.latitude` | 0.0 | `GEOLOCATION_DEFAULT_LATITUDE` | Zemepisná šírka záložnej polohy, -90 až 90. Prázdna hodnota sa považuje za nenastavenú (0.0); hodnota, ktorá nie je číslom, vyhodí výnimku. |
| `default.longitude` | 0.0 | `GEOLOCATION_DEFAULT_LONGITUDE` | Zemepisná dĺžka záložnej polohy, -180 až 180. Prázdna hodnota sa považuje za nenastavenú (0.0); hodnota, ktorá nie je číslom, vyhodí výnimku. Kým sú všetky hodnoty default.\* prázdne alebo nulové (ako po inštalácii), poskytovateľ default odpovie null. |
| `services.ipinfo.url` | https://ipinfo.io/ | `IPINFO_URL` | Základná URL IPinfo. Prázdna hodnota sa považuje za nenastavenú (platí predvolená); hodnota, ktorá nie je reťazcom, vyhodí výnimku. |
| `services.ipinfo.token` | null | `IPINFO_TOKEN` | Token IPinfo; pri null sa neposiela (neautentifikovaná požiadavka). |
| `services.ipinfo.retry` | 3 | `IPINFO_RETRY_TIMES` | Počet opakovaní, 0 alebo viac. |
| `services.ipinfo.retry_delay` | 100 | `IPINFO_RETRY_DELAY_MS` | Pauza medzi opakovaniami v ms, 0 alebo viac. |
| `services.google.url` | https://maps.googleapis.com/maps/api | `GOOGLE_MAPS_URL` | Základná URL Geocoding API (vyhľadávanie adries a súradníc). Prázdna hodnota sa považuje za nenastavenú (platí predvolená); hodnota, ktorá nie je reťazcom, vyhodí výnimku. |
| `services.google.routes_url` | https://routes.googleapis.com | `GOOGLE_ROUTES_URL` | Základná URL Routes API (vzdialenosti a matice, computeRouteMatrix). Prázdna hodnota sa považuje za nenastavenú (platí predvolená); hodnota, ktorá nie je reťazcom, vyhodí výnimku. |
| `services.google.key` | null | `GOOGLE_MAPS_API_KEY` | Kľúč Google Maps Platform s povoleným Geocoding API a Routes API — Geocoding API ho dostane ako parameter key v query, Routes API v hlavičke X-Goog-Api-Key. |
| `services.google.retry` | 3 | `GOOGLE_MAPS_RETRY_TIMES` | Počet opakovaní, 0 alebo viac. |
| `services.google.retry_delay` | 100 | `GOOGLE_MAPS_RETRY_DELAY_MS` | Pauza medzi opakovaniami v ms, 0 alebo viac. |
| `services.ip2location.url` | https://api.ip2location.io | `IP2LOCATION_URL` | Základná URL IP2Location.io. Prázdna hodnota sa považuje za nenastavenú (platí predvolená); hodnota, ktorá nie je reťazcom, vyhodí výnimku. |
| `services.ip2location.key` | null | `IP2LOCATION_API_KEY` | API kľúč IP2Location.io. |
| `services.ip2location.retry` | 2 | `IP2LOCATION_RETRY_TIMES` | Počet opakovaní, 0 alebo viac. |
| `services.ip2location.retry_delay` | 100 | `IP2LOCATION_RETRY_DELAY_MS` | Pauza medzi opakovaniami v ms, 0 alebo viac. |
| `services.maxmind_web.enabled` | false | `MAXMIND_WEB_ENABLED` | Zapne poskytovateľa webovej služby MaxMind. |
| `services.maxmind_web.base_url` | https://geoip.maxmind.com/geoip/v2.1 | `MAXMIND_WEB_URL` | Základná URL webovej služby. Prázdna hodnota sa považuje za nenastavenú (platí predvolená); hodnota, ktorá nie je reťazcom, vyhodí výnimku. |
| `services.maxmind_web.account_id` | null | `MAXMIND_ACCOUNT_ID` | ID účtu MaxMind (používateľ HTTP Basic). |
| `services.maxmind_web.license_key` | null | `MAXMIND_LICENSE_KEY` | Licenčný kľúč MaxMind (heslo HTTP Basic); withToken('maxmind\_web', …) ho nahradí pre jedno volanie. |
| `services.maxmind_web.service` | city | `MAXMIND_WEB_SERVICE` | city, country alebo insights; prázdna hodnota sa považuje za nenastavenú (city); iná hodnota vyhodí InvalidConfigurationException. |
| `services.maxmind_web.retry` | 2 | `MAXMIND_WEB_RETRY_TIMES` | Počet opakovaní, 0 alebo viac. |
| `services.maxmind_web.retry_delay` | 100 | `MAXMIND_WEB_RETRY_DELAY_MS` | Pauza medzi opakovaniami v ms, 0 alebo viac. |
| `services.maxmind_database.enabled` | false | `MAXMIND_DB_ENABLED` | Zapne poskytovateľa lokálnej databázy .mmdb. |
| `services.maxmind_database.path` | storage\_path('app/geolocation/GeoLite2-City.mmdb') | `MAXMIND_DB_PATH` | Cesta k súboru .mmdb. |
| `services.maxmind_database.license_key` | null | `MAXMIND_LICENSE_KEY` | Licenčný kľúč pre geolocation:db:update. |
| `services.maxmind_database.edition` | GeoLite2-City | `MAXMIND_DB_EDITION` | Edícia, ktorú stiahne príkaz na aktualizáciu. Prázdna hodnota sa považuje za nenastavenú (platí predvolená); hodnota, ktorá nie je reťazcom, vyhodí výnimku. |
| `services.maxmind_database.download_url` | https://download.maxmind.com/app/geoip\_download | `MAXMIND_DB_DOWNLOAD_URL` | Základná URL na sťahovanie. Prázdna hodnota sa považuje za nenastavenú (platí predvolená); hodnota, ktorá nie je reťazcom, vyhodí výnimku. |
| `services.<provider>.rate_limits.*` | pozri Obmedzenie požiadaviek | `GEOLOCATION_<PROVIDER>_RATELIMIT*` | Tempo odchádzajúcich požiadaviek pre google, ipinfo, ip2location a maxmind\_web. |

Každý logický prepínač (cache.enabled, events.enabled, prepínače enabled oboch poskytovateľov MaxMind a kľúče enabled / adaptive v rate\_limits) prijíma true/false, 1/0, on/off alebo yes/no, z .env aj z publikovaného súboru; nenastavený alebo prázdny prepínač má predvolenú hodnotu a čokoľvek iné (napríklad GEOLOCATION\_CACHE=disabled) vyhodí pri prvom vyhľadávaní InvalidConfigurationException z package-toolkit s názvom kľúča.

Rovnako prísne sa číta každé ďalšie nastavenie. Celé číslo musí byť celé číslo (30 alebo „30“; five, 5.5 a 1e3 vyhodia výnimku, namiesto toho, aby sa zmenili na 0), reťazcové nastavenie musí byť reťazec a pevný slovník (per, services.maxmind\_web.service) odmietne všetko mimo neho. Nenastavený kľúč — chýbajúci, null alebo prázdny (riadok KEY= v .env) — má predvolenú hodnotu (voliteľné max\_wait / jitter zostanú vypnuté).

## Prostredie (env)

Prístupové údaje sa čítajú z prostredia vašej aplikácie, takže nikdy nie sú v balíku ani vo verziovacom systéme. Typický produkčný .env:

```bash
GEOLOCATION_TIMEOUT=5
GEOLOCATION_CACHE=true
GEOLOCATION_CACHE_STORE=redis
GEOLOCATION_EVENTS=true

IPINFO_TOKEN=your-ipinfo-token
GOOGLE_MAPS_API_KEY=your-google-maps-key
IP2LOCATION_API_KEY=your-ip2location-key

MAXMIND_DB_ENABLED=true
MAXMIND_LICENSE_KEY=your-license-key
```

services.maxmind\_web.license\_key aj services.maxmind\_database.license\_key čítajú MAXMIND\_LICENSE\_KEY, takže jeden kľúč pokryje webovú službu aj sťahovanie databázy.

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/geolocation-for-laravel.md)
