libre-charge-map/js/lcm_utils.js

140 lines
5.6 KiB
JavaScript
Raw Normal View History

const lcm_utils = {
2024-12-22 18:57:06 +01:00
/**
* fouiller dans les tags les valeurs explicites de puissance déclarée.
* Deviner aussi les puissances non déclarées:
* - type 2 présent, max 43kW
* - type Chademo présent, max 63kW
* https://forum.openstreetmap.fr/t/bornes-de-recharges-et-puissance-chargeurs-quel-est-votre-avis/27828
*
* @param feature
* @returns {number}
*/
guessOutputPowerFromFeature: (feature) => {
let outputPower = 0
let power = 0
if (feature.properties && feature.properties.tags) {
2024-12-17 11:53:02 +01:00
2024-12-22 18:57:06 +01:00
let found_type_2 = false
let found_type_chademo = false
// deviner les puissances max selon les capacités de prises
for (var tag in feature.properties.tags) {
if (tag.indexOf('type2') !== -1) {
2024-12-18 13:40:58 +01:00
2024-12-22 18:57:06 +01:00
found_type_2 = true
power = 43
}
if (tag.indexOf('chademo') !== -1) {
found_type_chademo = true
power = 63
}
let value = feature.properties.tags[tag]
if (value && tag.toLowerCase().indexOf('output') !== -1) {
value = '' + value
if (value.indexOf(';') !== -1) {
2025-04-18 16:50:26 +02:00
// console.log('value output multiple', value)
2024-12-22 18:57:06 +01:00
let explode = value.split(';')
explode.forEach(elem => {
if (value.replace) {
value = value.replace(' ')
value = value.replace('kW', '')
}
let power = parseInt(value)
if (power > outputPower) {
outputPower = power
}
})
} else {
if (value.replace) {
value = value.replace(' ')
value = value.replace('kW', '')
}
let power = parseInt(value)
if (power > outputPower) {
outputPower = power
}
}
}
}
}
2025-04-18 16:50:26 +02:00
2024-12-22 18:57:06 +01:00
feature.properties.outputPower = outputPower
return outputPower
},
2024-12-17 11:53:02 +01:00
2025-04-28 13:23:12 +02:00
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;
},
2024-12-22 18:57:06 +01:00
/**
* villes les plus peuplées de France
*/
cities: [
2025-04-18 16:50:26 +02:00
{ name: 'Paris', coords: [48.8566, 2.3522] },
{ name: 'Marseille', coords: [43.2965, 5.3698] },
{ name: 'Lyon', coords: [45.7640, 4.8357] },
{ name: 'Toulouse', coords: [43.6042, 1.4437] },
{ name: 'Nice', coords: [43.7101, 7.2620] },
{ name: 'Nantes', coords: [47.2184, -1.5536] },
{ name: 'Strasbourg', coords: [48.5831, 7.7521] },
{ name: 'Montpellier', coords: [43.6167, 3.8742] },
{ name: 'Bordeaux', coords: [44.8378, -0.5792] },
{ name: 'Lille', coords: [50.6293, 3.1466] },
{ name: 'Rennes', coords: [48.1120, -1.6823] },
{ name: 'Toulon', coords: [43.1230, 5.9291] },
{ name: 'Le Havre', coords: [49.4943, 0.1079] },
{ name: 'Saint-Etienne', coords: [45.4380, 4.3841] },
{ name: 'Grenoble', coords: [45.1667, 5.7295] },
{ name: 'Rouen', coords: [49.4431, 1.0820] },
{ name: 'Dijon', coords: [47.3221, 5.0446] },
{ name: 'Angers', coords: [47.4786, -0.5551] },
{ name: 'Nîmes', coords: [43.8366, 4.3623] },
{ name: 'Reims', coords: [49.2500, 4.0333] }
2024-12-22 18:57:06 +01:00
]
2024-12-17 11:53:02 +01:00
}
export default lcm_utils