Fotografie
Miesta nesú názvy fotografií v $place->photos. photoUrl() pre jednu z nich zostaví URL média:
use RoundlyConsulting\GooglePlaces\Facades\GooglePlaces;
// $photoName is a photo resource name from a place ($place->photos).
$url = GooglePlaces::photoUrl($photoName, maxWidth: 800, maxHeight: 600);photoUrl() vkladá váš API kľúč do parametra key v URL, preto takúto URL držte len na serveri. Pre všetko, čo sa dostane do prehliadača, použite photo().
Stiahnutie fotografie
photo() vráti handle na jednu fotografiu miesta. API kľúč sa posiela v hlavičke požiadavky a do prehliadača sa nikdy nedostane — url() vráti URL média od Google bez kľúča:
use RoundlyConsulting\GooglePlaces\Facades\GooglePlaces;
// $photoName is a photo resource name from a place ($place->photos).
$photo = GooglePlaces::photo($photoName, maxWidth: 800, maxHeight: 600);
$url = $photo->url(); // Google's key-free media URL (safe for the browser)
$bytes = $photo->contents(); // raw image bytes
$path = $photo->save('public', 'p.jpg'); // store on a filesystem disk → returns the path
// The same two requests without the handle:
GooglePlaces::photoUri($photoName, 800, 600);
GooglePlaces::photoContents($photoName, 800, 600);- url() — spustí photoUri(): výslednú URL média od Google bez kľúča, bezpečnú pre značku <img>.
- contents() — spustí photoContents(): surové bajty obrázka.
- save($disk, $path) — zapíše bajty na ľubovoľný Laravel disk a vráti cestu.
- Šírka a výška sú predvolene 1600 px; neúspešné stiahnutie alebo chýbajúci kľúč vyhodí PlacesException.
Každá požiadavka na fotografiu ide cez klienta ako ktorékoľvek iné volanie: s nastavenými timeoutmi a opakovaniami spojenia, v rámci rate limitu places, s udalosťami životného cyklu a s podporou GooglePlaces::fake(). Fotografie sa nikdy necachujú — tie, ktoré používate opakovane, si uložte:
// Cache a place's hero image locally once:
$path = "places/{$place->id}.jpg";
if (! Storage::disk('public')->exists($path) && $place->photos !== []) {
GooglePlaces::photo($place->photos[0], 1200, 800)->save('public', $path);
}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.