---
title: "Fasáda Geolocation — Geolocation for Laravel | Roundly"
description: "Všetky metódy fasády Geolocation na jednom mieste — poloha, dávky, vzdialenosti a matice, pripnutie a prepísanie, aktualizácia databázy a cache."
url: https://roundly-consulting.com/sk/open-source/navody/geolocation-for-laravel/fasada
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)

# Fasáda Geolocation

Odporúčaným vstupným bodom je fasáda Geolocation. Registruje sa automaticky (globálny alias Geolocation) a stojí za ňou GeolocationManager, takže každé volanie nižšie funguje aj na injektovanom manažéri — pozri DI a akcie. Celý rozsah fasády:

```php
use RoundlyConsulting\Geolocation\DataTransferObjects\Coordinates;
use RoundlyConsulting\Geolocation\DataTransferObjects\DistanceQuery;
use RoundlyConsulting\Geolocation\DataTransferObjects\GeolocationQuery;
use RoundlyConsulting\Geolocation\Enum\DistanceType;
use RoundlyConsulting\Geolocation\Facades\Geolocation;

// Locate
Geolocation::locateIp('8.8.8.8');                  // ?Location
Geolocation::locateRequest();                      // the client IP of the current request
Geolocation::locateAddress('1600 Amphitheatre Pkwy, Mountain View');
Geolocation::locateCoordinates(new Coordinates(48.1486, 17.1077));
Geolocation::locate(GeolocationQuery::forIp('8.8.8.8'));
Geolocation::batch(['8.8.8.8', '1.1.1.1']);        // array<string, ?Location>

// Measure
Geolocation::distanceBetween($from, $to);          // ?Distance — driving by default
Geolocation::distance(DistanceQuery::between($from, $to, DistanceType::Walking));
Geolocation::distanceMatrix([$warehouse], [$a, $b]);   // DistanceMatrix

// Scoped copies — they apply to the call they are chained to, nothing else
Geolocation::provider('ipinfo')->locateIp('8.8.8.8');
Geolocation::using('maxmind_database', 'ipinfo')->locateIp('8.8.8.8');
Geolocation::withToken('ipinfo', 'runtime-token')->locateIp('8.8.8.8');
Geolocation::withTimeout(10)->locateIp('8.8.8.8');

// Maintain
Geolocation::updateDatabase();                     // refresh the MaxMind .mmdb, returns the path
Geolocation::forget(GeolocationQuery::forIp('8.8.8.8'));   // drop one cached result
Geolocation::flushCache();                         // drop every cached lookup and distance
Geolocation::extend('my_provider', fn () => new MyProvider());
```

## Prehľad metód

| Metóda | Vracia | Účel |
| --- | --- | --- |
| `locateIp($ip) / locateAddress($address)` | `?Location` | Nájde polohu IP adresy alebo ulice. |
| `locateCoordinates($coordinates)` | `?Location` | Spätné geokódovanie hodnoty Coordinates. |
| `locateRequest(?$request)` | `?Location` | IP klienta z aktuálneho (alebo zadaného) requestu; bez IP null. |
| `locate($query)` | `?Location` | Vyhodnotí ľubovoľný GeolocationQuery. |
| `batch($ips)` | `array<string, ?Location>` | Viac IP naraz; chyby sa zmenia na null pre danú položku. |
| `distance($query)` | `?Distance` | Vzdialenosť cesty pre DistanceQuery. |
| `distanceBetween($from, $to, $type)` | `?Distance` | distance() bez skladania dotazu; predvolene Driving. |
| `distanceMatrix($origins, $destinations, $type)` | `DistanceMatrix` | Mriežka východísk × cieľov jedným volaním. |
| `updateDatabase(?$edition, ?$path)` | `string` | Stiahne alebo obnoví .mmdb MaxMind; vráti zapísanú cestu. |
| `forget($query)` | `bool` | Odstráni jeden výsledok z cache. |
| `flushCache()` | `void` | Zneplatní všetky výsledky v cache. |
| `provider($name) / using(...$names)` | `GeolocationManager` | Kópia manažéra, ktorá sa pýta len vybraných poskytovateľov. |
| `withToken($provider, $token)` | `GeolocationManager` | Kópia manažéra, ktorá pošle token alebo kľúč len danému poskytovateľovi. |
| `withConfig($provider, $overrides)` | `GeolocationManager` | Kópia manažéra s prepísanou konfiguráciou len pre daného poskytovateľa. |
| `withTimeout($seconds)` | `GeolocationManager` | Kópia manažéra s týmto HTTP timeoutom pre všetkých poskytovateľov. |
| `extend($name, $factory)` | `GeolocationManager` | Zaregistruje poskytovateľa ako closure pre pipeline. |
| `fake(array $results = [])` | `GeolocationFake` | Vymení manažér za zaznamenávajúci fake — pozri Testovanie. |

locate(), distance() a distanceBetween() vrátia null, keď dotaz nevyrieši žiadny poskytovateľ, aj keď sú všetci nedostupní. provider(), using() a prepísania with\*() vracajú kópiu manažéra s obmedzeným rozsahom: platí presne tak dlho ako reťazec volaní, ku ktorému ju pripojíte, a zdieľaný manažér sa nikdy nezmení. GeolocationManager je navyše Macroable — pozri Nastavenia pre jedno volanie.

## 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)
