Updated backend/frontend
This commit is contained in:
@@ -10,26 +10,25 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
|
||||
function calculateRoute() {
|
||||
if (points.length === 2) {
|
||||
var options = {
|
||||
"exclude_restrictions": true
|
||||
};
|
||||
var moto = {};
|
||||
// Avoid highways -> lower highway usage weight
|
||||
if (avoidHighwaysCheckbox && avoidHighwaysCheckbox.checked) {
|
||||
options.use_highways = 0;
|
||||
}
|
||||
if (useShortestCheckbox && useShortestCheckbox.checked) {
|
||||
options.use_shortest = true;
|
||||
}
|
||||
if (avoidTollRoadsCheckbox && avoidTollRoadsCheckbox.checked) {
|
||||
options.avoid_toll = true;
|
||||
moto.use_highways = 0.0; // 0..1 (0 avoids, 1 prefers)
|
||||
}
|
||||
// Avoid ferries -> lower ferry usage weight
|
||||
if (avoidFerriesCheckbox && avoidFerriesCheckbox.checked) {
|
||||
options.avoid_ferry = true;
|
||||
moto.use_ferry = 0.0; // 0..1
|
||||
}
|
||||
// Avoid unpaved -> exclude unpaved roads entirely
|
||||
if (avoidUnpavedCheckbox && avoidUnpavedCheckbox.checked) {
|
||||
options.avoid_unpaved = true;
|
||||
moto.exclude_unpaved = true;
|
||||
}
|
||||
// Avoid tolls -> exclude tolls
|
||||
if (avoidTollRoadsCheckbox && avoidTollRoadsCheckbox.checked) {
|
||||
moto.exclude_tolls = true;
|
||||
}
|
||||
|
||||
var costing_options = { motorcycle: options };
|
||||
var costing_options = { motorcycle: moto };
|
||||
|
||||
var requestBody = {
|
||||
locations: [
|
||||
@@ -37,8 +36,12 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
{ lat: points[1].lat, lon: points[1].lng }
|
||||
],
|
||||
costing: "motorcycle",
|
||||
costing_options: costing_options
|
||||
costing_options: costing_options,
|
||||
units: "kilometers"
|
||||
};
|
||||
if (useShortestCheckbox && useShortestCheckbox.checked) {
|
||||
requestBody.shortest = true; // top-level shortest flag
|
||||
}
|
||||
|
||||
fetch('/route', {
|
||||
method: 'POST',
|
||||
@@ -50,7 +53,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
var leg = data.trip && data.trip.legs && data.trip.legs[0];
|
||||
var infoCard = document.getElementById('routeInfoCard');
|
||||
if (leg && leg.summary && typeof leg.summary.length === 'number' && typeof leg.summary.time === 'number') {
|
||||
var distanceKm = (leg.summary.length / 1000).toFixed(1); // meters to km
|
||||
var distanceKm = (leg.summary.length).toFixed(1); // already in km
|
||||
var durationMin = Math.round(leg.summary.time / 60); // seconds to minutes
|
||||
var info = `<strong>Distance:</strong> ${distanceKm} km<br>
|
||||
<strong>Estimated Time:</strong> ${durationMin} min<br>
|
||||
@@ -201,7 +204,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
});
|
||||
|
||||
function reverseGeocode(lat, lon, inputId) {
|
||||
fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${lat}&lon=${lon}`)
|
||||
fetch(`/reverse?format=json&lat=${lat}&lon=${lon}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
var input = document.getElementById(inputId);
|
||||
|
||||
Reference in New Issue
Block a user