ajout temps de charge moyen

This commit is contained in:
Tykayn 2025-05-01 12:28:43 +02:00 committed by tykayn
parent 0ce172f706
commit 24e1800085
6 changed files with 167 additions and 29 deletions

View file

@ -13,6 +13,7 @@ let geojsondata;
let lastLatLng;
let searchLocationMarker = null;
let count_hidden_by_filters = 0;
let averageChargeKwh = 26;
@ -691,9 +692,22 @@ function eachFeature(feature, layer, stats) {
}
// Calcul du temps de recharge
let rechargeTimeText = '';
if (outPowerGuessed && outPowerGuessed > 0) {
const hours = averageChargeKwh / outPowerGuessed;
const minutes = Math.round(hours * 60);
const h = Math.floor(minutes / 60);
const m = minutes % 60;
rechargeTimeText = `<div class="recharge-time">
Temps moyen de recharge:
<strong>${h > 0 ? h + 'h ' : ''}${m} min</strong>
</div>`;
}
// contenu de la popup
let html = `<span class="color-indication" style="background-color: ${lcm_color_utils.getColor(feature)};">${displayOutPowerGuessed}</span>
${rechargeTimeText}
<div class="popup-content">
<div class="socket-list">
${displaySocketsList(feature)}
@ -850,18 +864,34 @@ function eachFeature(feature, layer, stats) {
* @param {*} feature
*/
function fillDetailsWithFeature(feature) {
// Stocker le feature courant pour pouvoir rafraîchir le détail si besoin
$('#current_station_infos').data('currentFeature', feature);
// Ajout du lien vers Panoramax
const panoramaxLink = `https://api.panoramax.xyz/#focus=map&map=16.7/${feature.geometry.coordinates[1]}/${feature.geometry.coordinates[0]}&speed=250`;
let link_josm = createJOSMEditLink(feature);
let outPowerGuessed = lcm_utils.guessOutputPowerFromFeature(feature);
let displayOutPowerGuessed = '? kW';
if (outPowerGuessed) {
displayOutPowerGuessed = outPowerGuessed + ' kW max';
}
// AJOUT : Calcul du temps de recharge pour le panneau latéral
let rechargeTimeText = '';
if (outPowerGuessed && outPowerGuessed > 0) {
const hours = averageChargeKwh / outPowerGuessed;
const minutes = Math.round(hours * 60);
const h = Math.floor(minutes / 60);
const m = minutes % 60;
rechargeTimeText = `<div class="recharge-time">
Temps estimé pour charger ${averageChargeKwh} kWh à ${outPowerGuessed} kW:
<strong>${h > 0 ? h + 'h ' : ''}${m} min</strong>
</div>`;
} else {
rechargeTimeText = `<div class="recharge-time">⏱️ Temps estimé: puissance inconnue</div>`;
}
let content = '';
let table_details = '';
let count_features_in_table = 0;
@ -884,34 +914,35 @@ function fillDetailsWithFeature(feature) {
if (!count_features_in_table) {
table_details += '<div class="no-feature-in-table">Aucune information renseignée</div>'
}
content += ` <span class="color-indication" style="background-color: ${lcm_color_utils.getColor(feature)};">${displayOutPowerGuessed}</span>
<a href="https://www.openstreetmap.org/directions?from=&to=${feature.geometry.coordinates[1]},${feature.geometry.coordinates[0]}&engine=fossgis_osrm_car#map=14/${feature.geometry.coordinates[1]}/${feature.geometry.coordinates[0]}" class="navigation-link by-car" title="itinéraire en voiture vers cette station"> 🚗</a>
<a href="https://www.openstreetmap.org/directions?from=&to=${feature.geometry.coordinates[1]},${feature.geometry.coordinates[0]}&engine=fossgis_osrm_bike#map=14/${feature.geometry.coordinates[1]}/${feature.geometry.coordinates[0]}" class="navigation-link by-car" title="itinéraire en vélo vers cette station">🚴</a>
<a href="https://www.openstreetmap.org/directions?from=&to=${feature.geometry.coordinates[1]},${feature.geometry.coordinates[0]}&engine=fossgis_osrm_foot#map=14/${feature.geometry.coordinates[1]}/${feature.geometry.coordinates[0]}" class="navigation-link by-car" title="itinéraire à pied vers cette station">👠</a>
content += `
<span class="color-indication" style="background-color: ${lcm_color_utils.getColor(feature)};">${displayOutPowerGuessed}</span>
${rechargeTimeText}
<a href="https://www.openstreetmap.org/directions?from=&to=${feature.geometry.coordinates[1]},${feature.geometry.coordinates[0]}&engine=fossgis_osrm_car#map=14/${feature.geometry.coordinates[1]}/${feature.geometry.coordinates[0]}" class="navigation-link by-car" title="itinéraire en voiture vers cette station"> 🚗</a>
<a href="https://www.openstreetmap.org/directions?from=&to=${feature.geometry.coordinates[1]},${feature.geometry.coordinates[0]}&engine=fossgis_osrm_bike#map=14/${feature.geometry.coordinates[1]}/${feature.geometry.coordinates[0]}" class="navigation-link by-car" title="itinéraire en vélo vers cette station">🚴</a>
<a href="https://www.openstreetmap.org/directions?from=&to=${feature.geometry.coordinates[1]},${feature.geometry.coordinates[0]}&engine=fossgis_osrm_foot#map=14/${feature.geometry.coordinates[1]}/${feature.geometry.coordinates[0]}" class="navigation-link by-car" title="itinéraire à pied vers cette station">👠</a>
<a class="edit-button" href="https://www.openstreetmap.org/edit?editor=id&node=${feature.properties.id}"></a>
<a class="edit-button josm" data-href="${link_josm}" href="#">JOSM</a>
<a href="${makeMapCompleteUrl(feature)}" target="_blank" class="edit-button mapcomplete-link" title="Voir sur MapComplete">
<img src="https://mapcomplete.org/assets/themes/charging_stations/plug.svg" alt="icone">
</a>
<a href="${panoramaxLink}" target="_blank" class="panoramax-link" title="Voir sur Panoramax">
<img src="styles/images/panoramax.ico" alt="icone">
</a>
<a class="edit-button" href="https://www.openstreetmap.org/edit?editor=id&node=${feature.properties.id}"></a>
<a class="edit-button josm" data-href="${link_josm}" href="#">JOSM</a>
<a href="${makeMapCompleteUrl(feature)}" target="_blank" class="edit-button mapcomplete-link" title="Voir sur MapComplete">
<img src="https://mapcomplete.org/assets/themes/charging_stations/plug.svg" alt="icone">
</a>
<a href="${panoramaxLink}" target="_blank" class="panoramax-link" title="Voir sur Panoramax">
<img src="styles/images/panoramax.ico" alt="icone">
</a>
<div class="socket-list">
${displaySocketsList(feature)}
</div>
<div class="table-details" >
${table_details}
</div>
<div class="bad-tags">
<h3>Problèmes de qualité</h3>
${lcm_utils.displayBadTagsFromFeature(feature)}
</div>
`
<div class="socket-list">
${displaySocketsList(feature)}
</div>
<div class="table-details" >
${table_details}
</div>
<div class="bad-tags">
<h3>Problèmes de qualité</h3>
${lcm_utils.displayBadTagsFromFeature(feature)}
</div>
`
$('#current_station_infos').html(`<div class='island irve-details'><h2>Détails</h2>${content}</div>`);
}
@ -1020,7 +1051,13 @@ function onMapMoveEnd() {
setCoordinatesOfLeafletMapFromQueryParameters()
import { lcm_i18n } from './lcm_i18n.js';
$(document).ready(function () {
// Charger le service de traduction
// Détecter la langue du navigateur
const currentLanguage = lcm_i18n.detectLanguage();
console.log('Langue détectée:', currentLanguage);
init()
});
@ -1481,6 +1518,15 @@ function init() {
osmose_markers.addTo(map);
$('#average_charge_kwh').val(averageChargeKwh);
$('#average_charge_kwh').on('input', function () {
averageChargeKwh = parseFloat($(this).val()) || 26;
// Si un détail de station est affiché, le mettre à jour
if ($('#current_station_infos').data('currentFeature')) {
fillDetailsWithFeature($('#current_station_infos').data('currentFeature'));
}
});
}