45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
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();
|