mirror of
https://forge.chapril.org/tykayn/libre-charge-map
synced 2025-06-20 01:34:43 +02:00
ajout temps de charge moyen
This commit is contained in:
parent
0ce172f706
commit
24e1800085
6 changed files with 167 additions and 29 deletions
102
js/lcm_main.js
102
js/lcm_main.js
|
@ -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'));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue