Calcul de trajet auto après scrape + recalcul local intelligent

- trajet.py : fonction couts() pure (calcul des coûts sans appel réseau)
- app.py : mémorisation distance/durée/péage + adresses dans le CSV ;
  auto-calcul best-effort après ajout (scrape simple et en lot) ;
  api_distance recalcule en local si adresses inchangées, complet sinon
- index.html : affichage auto du trajet en cache à l'ouverture du prospect
This commit is contained in:
jerem
2026-06-13 17:43:24 +02:00
parent 0952c0bfb5
commit 73d1653225
3 changed files with 113 additions and 18 deletions

View File

@@ -75,14 +75,15 @@ def itineraire(depart, arrivee):
return route["distance"] / 1000.0, route["duration"] / 60.0, metres_autoroute / 1000.0
def calculer(adresse_depart, adresse_arrivee, conso_l_100km, prix_carburant, cout_peage_km=0.0):
"""Estime distance, durée, coût carburant et péage (aller simple et aller-retour).
def couts(distance_km, duree_min, km_peage, conso_l_100km, prix_carburant, cout_peage_km=0.0):
"""Données géographiques + tarifs -> dict complet (coûts aller simple et aller-retour).
Calcul purement local (aucun appel réseau) : permet de réappliquer de nouveaux prix
sur une distance déjà connue sans re-géocoder ni re-router.
Le péage est estimé : km d'autoroute du trajet × `cout_peage_km` (tarif moyen
paramétrable, en €/km). Mettre 0 pour ne pas compter de péage.
"""
distance_km, duree_min, km_peage = itineraire(
geocoder(adresse_depart), geocoder(adresse_arrivee))
carburant = distance_km / 100.0 * conso_l_100km * prix_carburant
peage = km_peage * cout_peage_km
cout_aller = carburant + peage
@@ -100,6 +101,16 @@ def calculer(adresse_depart, adresse_arrivee, conso_l_100km, prix_carburant, cou
}
def calculer(adresse_depart, adresse_arrivee, conso_l_100km, prix_carburant, cout_peage_km=0.0):
"""Estime distance, durée, coût carburant et péage (aller simple et aller-retour).
Fait les appels réseau (Nominatim + OSRM) puis délègue le calcul des coûts à `couts`.
"""
distance_km, duree_min, km_peage = itineraire(
geocoder(adresse_depart), geocoder(adresse_arrivee))
return couts(distance_km, duree_min, km_peage, conso_l_100km, prix_carburant, cout_peage_km)
if __name__ == "__main__":
import sys
if len(sys.argv) != 3: