const axios = require('axios'); const polylineLib = require('@mapbox/polyline'); require('dotenv').config({ path: '.env' }); async function directTestToulouse() { const origin = "25 Impasse du Puits du Suc, Saint-Martin-en-Haut, France"; const destination = "Toulouse, France"; const apiKey = process.env.API_MAPS; const routesUrl = 'https://routes.googleapis.com/directions/v2:computeRoutes'; const fieldMask = 'routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline,routes.travelAdvisory.tollInfo'; const resToll = await axios.post(routesUrl, { travelMode: 'DRIVE', routingPreference: 'TRAFFIC_UNAWARE', origin: { address: origin }, destination: { address: destination }, routeModifiers: { avoidTolls: false } }, { headers: { 'Content-Type': 'application/json', 'X-Goog-Api-Key': apiKey, 'X-Goog-FieldMask': fieldMask, } }); const poly = resToll.data.routes[0].polyline.encodedPolyline; const decoded = polylineLib.decode(poly, 5); const poly6 = polylineLib.encode(decoded, 6); const ulysUrl = `https://api-ulys.azure-api.net/placemark/v2/legs?precision=6&includeLayersIds=GaresPeage`; try { const res = await axios.post(ulysUrl, JSON.stringify(poly6), { headers: { 'Content-Type': 'application/json' } }); console.log("Ulys Response (precision=6):"); console.log(res.data); } catch(e) { console.log("Ulys Error:", e.message); if(e.response && e.response.data) console.log(e.response.data); } } directTestToulouse();