quality control stuff

This commit is contained in:
Tykayn 2025-04-28 13:23:12 +02:00 committed by tykayn
parent 59ec02284a
commit afb71cbd6a
6 changed files with 114 additions and 10 deletions

View file

@ -476,7 +476,7 @@ function displayStatsFromGeoJson(resultAsGeojson, stats) {
// Ajouter une fonction pour mettre à jour les compteurs
function updateCounters() {
const stationsCount = geojsondata ? geojsondata.features.length : 0;
console.log("osmoseIssuesList", lcm_config.osmoseIssuesList);
const osmoseText = lcm_config.osmoseIssuesList.length > 0 ? ` <span class="osmose-counter">(+ ${lcm_config.osmoseIssuesList.length} ?)</span>` : '';
$('#count_features_fond').html(`${stationsCount}${osmoseText} stations`);
}
@ -869,9 +869,13 @@ function fillDetailsWithFeature(feature) {
<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)}
@ -879,10 +883,20 @@ function fillDetailsWithFeature(feature) {
<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>`);
}
function makeMapCompleteUrl(feature) {
// https://mapcomplete.org/charging_stations.html?z=16.3&lat=48.85770772656571&lon=2.353630884174322#node/123454656
const center = map.getCenter()
const zoom = map.getZoom()
return `https://mapcomplete.org/charging_stations.html?z=${zoom}&lat=${center.lat}&lon=${center.lng}#node/${feature.properties.id}`
}
function bindFullDetails(feature) {
$('#fullDetails').on('click', () => {
@ -1326,6 +1340,7 @@ function init() {
$('#chercherButton').on('click', function () {
supprimerMarqueurs();
loadOverpassQuery();
geoDataPointsFromApi();
});
$('#setRandomView').on('click', function () {
setRandomView();
@ -1351,7 +1366,7 @@ function init() {
// Initialisation des états des checkboxes des filtres selon les valeurs de configuration
Object.keys(lcm_config.filterConfigs).forEach(filterId => {
console.log("checbox ", $(`#${filterId}`), lcm_config.filterConfigs[filterId], lcm_config)
$(`#${filterId}`).prop('checked', lcm_config.filterConfigs[filterId]);
});
// Écouteurs pour les filtres

View file

@ -61,6 +61,55 @@ const lcm_utils = {
return outputPower
},
displayBadTagsFromFeature: (feature) => {
let content = ''
// tag de prise sans output
if (feature.properties.tags['socket: type2_combo'] && !feature.properties.tags['socket: type2_combo:output']) {
content += '<span class="quality-alert">Prise type 2 combo sans puissance déclarée</span>'
}
// tag de prise sans output
if (!feature.properties.tags['charging_station:output']) {
content += '<span class="quality-alert">Pas de puissance déclarée pour la station</span>'
}
// Vérifier les tags de puissance qui ne devraient pas contenir de point-virgule
for (let tag in feature.properties.tags) {
if (tag.includes(':output')) {
let value = feature.properties.tags[tag];
if (value && value.includes(';')) {
content += `<span class="quality-alert">Le tag "${tag}" ne devrait pas contenir de point-virgule dans sa valeur</span>`;
}
}
}
if (!feature.properties.tags['ref:EU:EVSE']) {
content += '<span class="quality-alert">Pas de référence ref:EU:EVSE</span>'
}
if (!feature.properties.tags['capacity']) {
content += '<span class="quality-alert">Pas de nombre de places donné avec capacity</span>'
}
if (!feature.properties.tags['network']) {
content += '<span class="quality-alert">Pas de réseau de recharge déclaré</span>'
}
// Vérifier les valeurs true/false dans les tags
for (let tag in feature.properties.tags) {
let value = feature.properties.tags[tag];
if (value === 'true' || value === 'false') {
content += `<span class="quality-alert">Le tag "${tag}" utilise true/false au lieu de yes/no</span>`;
}
}
if (!content) {
content = '<span class="quality-ok">Aucun problème de qualité</span>'
}
return content;
},
/**
* villes les plus peuplées de France
*/