---
title: "Matica vzdialeností — Google Places for Laravel | Roundly"
description: "Vypočítajte mnoho štartov voči mnohým cieľom jedným volaním a čítajte ľubovoľnú dvojicu, riadok či stĺpec výsledku."
url: https://roundly-consulting.com/sk/open-source/navody/google-places-for-laravel/matica-vzdialenosti
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Google Places for Laravel](https://roundly-consulting.com/sk/open-source/navody/google-places-for-laravel.md)

# Matica vzdialeností

Pre mnoho štartov voči mnohým cieľom použite matrix(). Metóda spôsobu dopravy odošle požiadavku a vráti DistanceMatrix, ktorú indexujete po dvojiciach:

```php
use RoundlyConsulting\GooglePlaces\DataTransferObjects\Location;
use RoundlyConsulting\GooglePlaces\Facades\GooglePlaces;

$matrix = GooglePlaces::matrix(
    origins: [new Location(48.1486, 17.1077), new Location(48.2082, 16.3738)],
    destinations: [new Location(50.0755, 14.4378), new Location(47.4979, 19.0402)],
)->driving();                       // ->driving() / ->walking() / ->bicycling() / ->transit()

$element = $matrix->for(0, 1);      // origin 0 → destination 1
if ($element?->hasRoute()) {
    echo $element->distance->humanReadableDistance;
    echo $element->distance->durationInSeconds;
}

$matrix->origin(0);                 // Collection<MatrixElement> keyed by destination index
$matrix->destination(1);            // Collection<MatrixElement> keyed by origin index

// Traffic-aware driving ETAs:
GooglePlaces::matrix($origins, $destinations)->departingAt(now()->addHour())->driving();
```

Na rozdiel od distance() matica pri nedostupnej dvojici nevyhodí výnimku — daný prvok jednoducho nemá trasu. Pred čítaním vzdialenosti overte hasRoute(). Každý MatrixElement nesie originIndex, destinationIndex, condition, distance (Distance alebo null) a stavový kód Google.

## Príklad: najbližší vodič

Porovnajte všetkých vodičov so všetkými objednávkami jednou požiadavkou a vyberte najrýchlejšieho vodiča pre objednávku:

```php
use RoundlyConsulting\GooglePlaces\DataTransferObjects\MatrixElement;

$matrix = GooglePlaces::matrix($drivers, $orders)->driving();

// Index of the fastest driver for order 0:
$fastest = $matrix->destination(0)
    ->filter(fn (MatrixElement $element) => $element->hasRoute())
    ->sortBy(fn (MatrixElement $element) => $element->distance->durationInSeconds)
    ->keys()
    ->first();
```

## Priame použitie MatrixQuery

matrix() je fluentná skratka nad computeMatrix() — jej travellingBy(TravelMode) a departingAt() zodpovedajú metódam dopytu. MatrixQuery si zostavte sami, keď chcete v kóde odovzdávať celý dopyt:

```php
use RoundlyConsulting\GooglePlaces\DataTransferObjects\MatrixQuery;
use RoundlyConsulting\GooglePlaces\Enums\TravelMode;

$matrix = GooglePlaces::computeMatrix(
    (new MatrixQuery($origins, $destinations))
        ->travellingBy(TravelMode::Bicycling)
        ->departingAt(now()->addHour()),
);

$matrix->elements;          // list<MatrixElement>, sorted by origin then destination
$matrix->originCount;       // int
$matrix->destinationCount;  // int
$matrix->type;              // TravelMode
```

## 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/google-places-for-laravel.md)
