From ccf7dc99ee69be033142c770af74d4a4ffddb4c4 Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Mon, 6 Jul 2026 01:18:36 +0300 Subject: [PATCH] Update: 2026-07-06 01:18:35 --- backend/core/osrm_routing.php | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/backend/core/osrm_routing.php b/backend/core/osrm_routing.php index e4dc0845..bbc3e8de 100644 --- a/backend/core/osrm_routing.php +++ b/backend/core/osrm_routing.php @@ -17,32 +17,38 @@ * @return array|null Returns ['distance_km' => float, 'duration_min' => float] or null on failure. */ function getOsrmRouteDetails($startLat, $startLng, $endLat, $endLng, $countryCode = 'JO') { - // Format: longitude,latitude - $coordinates = "{$startLng},{$startLat};{$endLng},{$endLat}"; - - // Select Intaleq/Siro OSRM server based on country + // Select Intaleq Maps SaaS server based on country switch (strtoupper($countryCode)) { case 'SY': - $osrmBaseUrl = "https://routes-syria.siromove.com"; + $baseUrl = "https://map-syria.siromove.com/api/maps/route"; break; case 'EG': - $osrmBaseUrl = "https://routes-egypt.siromove.com"; + $baseUrl = "https://map-egypt.siromove.com/api/maps/route"; break; case 'JO': default: - $osrmBaseUrl = "https://routesjo.intaleq.xyz"; + $baseUrl = "https://map-saas.intaleqapp.com/api/maps/route"; break; } - $url = "{$osrmBaseUrl}/route/v1/driving/{$coordinates}?overview=false"; + $queryParams = http_build_query([ + 'fromLat' => $startLat, + 'fromLng' => $startLng, + 'toLat' => $endLat, + 'toLng' => $endLng + ]); + + $url = "{$baseUrl}?{$queryParams}"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 5); // 5 seconds timeout - // Add a User-Agent to avoid being blocked by the public demo server - curl_setopt($ch, CURLOPT_USERAGENT, "SiroRideHailingApp/1.0"); + // Add Intaleq API Key Header + curl_setopt($ch, CURLOPT_HTTPHEADER, [ + "x-api-key: in_9478b32836d19cff73db3063" + ]); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); @@ -50,10 +56,9 @@ function getOsrmRouteDetails($startLat, $startLng, $endLat, $endLng, $countryCod if ($httpCode === 200 && $response) { $data = json_decode($response, true); - if (isset($data['code']) && $data['code'] === 'Ok' && isset($data['routes'][0])) { - $route = $data['routes'][0]; - $distanceMeters = isset($route['distance']) ? (float)$route['distance'] : 0; - $durationSeconds = isset($route['duration']) ? (float)$route['duration'] : 0; + if (isset($data['distance']) && isset($data['duration'])) { + $distanceMeters = (float)$data['distance']; + $durationSeconds = (float)$data['duration']; return [ 'distance_km' => round($distanceMeters / 1000, 2),