NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

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 kryptomien

Odoslaní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.