Geolokačný driver
Balík registruje v manažéri geolocation-for-laravel driver google_places. Cez Google Places prevádza adresy na súradnice a súradnice na adresy a výsledok mapuje na vlastné DTO Location balíka geolocation. Google Places nepozná geolokáciu podľa IP, preto dopyty len s IP prejdú na ďalšieho poskytovateľa.
Pipeline nikdy nepreruší
- Nedostupný Google — timeout, zlyhanie DNS, odmietnuté spojenie — sa ohlási ako ProviderUnavailableException balíka geolocation; manažér ho zaznamená v LocationResolutionFailed a poskytovateľa preskočí.
- Každé iné zlyhanie Places — chýbajúci kľúč, REQUEST_DENIED, OVER_QUERY_LIMIT, rýchle zlyhanie klientskeho rate limitu — je netrafenie (null), takže odpovie ďalší poskytovateľ. Pri chybe API sa udalosť PlacesRequestFailed spustí aj tak.
- Driver číta vlastnú konfiguráciu google-places (GOOGLE_PLACES_API_KEY, timeouty, rate limity). Prepisy pre jedno volanie z balíka geolocation — withToken('google_places', …), withConfig(), withTimeout() — sa k nemu nedostanú.
Použitie drivera
Zaraďte driver do svojho geolokačného pipeline:
// config/geolocation.php — consult google_places in your resolution order:
'pipeline' => ['maxmind_database', 'google_places', 'default'],Alebo ho zavolajte priamo:
use RoundlyConsulting\Geolocation\DataTransferObjects\Coordinates;
use RoundlyConsulting\Geolocation\Facades\Geolocation;
// Ad-hoc, scoped to the driver for a single call:
$location = Geolocation::provider('google_places')->locateAddress('Bratislava, Slovakia');
$location = Geolocation::provider('google_places')->locateCoordinates(new Coordinates(48.1486, 17.1077));
echo $location?->humanReadable;
echo $location?->countryIsoCode;Namapovaná Location vyplní humanReadable, street (číslo a ulica), city, region, postalCode, countryIsoCode, latitude a longitude z prvého výsledku geokódovania. Dopyty idú cez toho istého klienta, takže platí cache, rate limity aj udalosti.
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 kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
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.