Detail miesta
details() vracia Place, alebo null, ak miesto neexistuje:
use RoundlyConsulting\GooglePlaces\DataTransferObjects\DetailsQuery;
use RoundlyConsulting\GooglePlaces\DataTransferObjects\Place;
use RoundlyConsulting\GooglePlaces\Facades\GooglePlaces;
$place = GooglePlaces::details($prediction->placeId); // or new DetailsQuery(...)
if ($place instanceof Place) {
echo $place->name;
echo $place->id;
echo $place->formattedAddress;
echo implode(', ', $place->types);
echo $place->geometry?->location->latitude;
echo $place->geometry?->location->longitude;
foreach ($place->openingHours?->periods ?? [] as $period) {
// from/to are "HHMM" strings; integer accessors are also available.
echo "{$period->day}: {$period->from}–{$period->to}";
echo "{$period->openHour}:{$period->openMinute}";
}
// Photo resource names — pass to photoUrl().
foreach ($place->photos as $photoName) {
$url = GooglePlaces::photoUrl($photoName, maxWidth: 800, maxHeight: 600);
}
$raw = $place->raw; // untouched Google payload
}Field maska a jazyk pre jednu požiadavku
Cez DetailsQuery prepíšete nastavenú field masku pre jednu požiadavku alebo si vyžiadate lokalizovanú odpoveď:
// Override the field mask for this request only:
new DetailsQuery($placeId, fields: ['id', 'displayName', 'location', 'types', 'photos']);
// Localised response:
new DetailsQuery($placeId, language: 'sk');Objekt Place
| Vlastnosť | Typ | Obsah |
|---|---|---|
name | string | Zobrazovaný názov. |
id | ?string | Google place id. |
formattedAddress | ?string | Celá naformátovaná adresa. |
types | list<string> | Typy miesta. |
geometry | ?Geometry | location, viewportNorthEast, viewportSouthWest. |
openingHours | ?OpeningHours | isOpen a periods (day, from, to, openHour, openMinute, closeHour, closeMinute). |
photos | list<string> | Názvy fotografií pre photoUrl() / photo(). |
addressComponents | list<AddressComponent> | Vyplnené len ak je addressComponents vo field maske. |
raw | array | Nezmenená odpoveď Google. |
Obdobia otváracích hodín poskytujú from a to ako reťazce „HHMM“ a celočíselné openHour, openMinute, closeHour a closeMinute. day sa riadi konvenciou Google: 0 je nedeľa.
Pomocné metódy Place
DTO Place obsahuje praktické metódy:
$place->isOpenNow(); // bool
$place->coordinates(); // ?Location
$place->primaryType(); // ?string
$place->openingHoursFor(1); // list<OpeningHourPeriod> for Monday (0 = Sunday)
$place->components(); // AddressComponents (needs addressComponents in the field mask)primaryType() vráti primaryType od Google, ak ho odpoveď obsahuje, inak prvý z typov miesta. Rovnaký objekt Place vracia aj textové a okolité vyhľadávanie a find place.
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.