"{$lat1},{$lon1}|{$lat2},{$lon2}", 'mode' => 'drive', 'units' => 'imperial', 'format' => 'json', 'apiKey' => $_ENV['GEOAPIFY_API_KEY'] ]; $url = "https://api.geoapify.com/v1/routing?".http_build_query($params); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); $result = curl_exec($ch); curl_close($ch); $route = new Route(json_decode($result)); if (is_a($route, Route::class)) { return $route; } return null; } public static function getRouteDistance(Location $origin, Location $destination): ?Route { $route = self::getRoute($origin->getLat(), $origin->getLon(), $destination->getLat(), $destination->getLon()); if ($route) { return $route; } return null; } }