23 lines
762 B
PHP
23 lines
762 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Services;
|
|
|
|
use App\Dto\ShopDto;
|
|
use App\Models\Shop;
|
|
use Domain\Models\Entities\Shop as EntitiesShop;
|
|
use Domain\Models\ValueObjects\DeliveryAddress;
|
|
|
|
class MapUrlService
|
|
{
|
|
public function generateUrl(Shop | EntitiesShop | DeliveryAddress | ShopDto $addressable): string
|
|
{
|
|
$query = urlencode("{$addressable->name} {$addressable->address} {$addressable->postcode} {$addressable->city}");
|
|
|
|
return ($addressable->latitude && $addressable->longitude) ?
|
|
"https://www.openstreetmap.org/?mlat={$addressable->latitude}&mlon={$addressable->longitude}" .
|
|
"#map=16/{$addressable->latitude}/{$addressable->longitude}" :
|
|
"https://maps.google.com/?q={$query}";
|
|
}
|
|
}
|