diff --git a/img/Type2_Connector_Outline.svg b/img/Type2_Connector_Outline.svg new file mode 100644 index 0000000..cdf2eb9 --- /dev/null +++ b/img/Type2_Connector_Outline.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/img/chademo.svg b/img/chademo.svg new file mode 100644 index 0000000..537ddad --- /dev/null +++ b/img/chademo.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/prise-de-courant.png b/img/prise-de-courant.png new file mode 100644 index 0000000..814e5c5 Binary files /dev/null and b/img/prise-de-courant.png differ diff --git a/img/prise_inconnue.svg b/img/prise_inconnue.svg new file mode 100644 index 0000000..6341cf7 --- /dev/null +++ b/img/prise_inconnue.svg @@ -0,0 +1,19 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + \ No newline at end of file diff --git a/img/type2_combo.svg b/img/type2_combo.svg new file mode 100644 index 0000000..3f38afc --- /dev/null +++ b/img/type2_combo.svg @@ -0,0 +1,30 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/index.html b/index.html index e159f8b..992d5ff 100644 --- a/index.html +++ b/index.html @@ -63,14 +63,10 @@

- Carte des IRVE + prise Libre Charge Map

- - - - - - +
+

@@ -95,8 +91,26 @@ > 300 kW
-
-
+ +

Cartes des stations de recharge pour véhicules électriques basée sur les données collaborative OpenStreetMap

+
+ type2 + + prise + prise + prise + prise +
+ + + + +
filtres:
@@ -135,6 +149,9 @@ Fait par Tykayn - www.cipherbliss.com. Sources disponibles sur la forge du Chapril. +
+ icones + câble électrique Energie icônes créées par rukanicon - Flaticon
diff --git a/js/main.js b/js/main.js index 9861b5d..e247927 100644 --- a/js/main.js +++ b/js/main.js @@ -135,7 +135,6 @@ const tags_to_display_in_popup = [ const margin_josm_bbox = 0.00001 function createJOSMEditLink (feature) { - console.log('createJOSMEditLink feature', feature) var coordinates = feature.geometry.coordinates var nodeId = feature.properties.id var left = coordinates[0] - margin_josm_bbox @@ -186,12 +185,12 @@ function guessOutputPowerFromFeature (feature) { } if (tag.indexOf('chademo') !== -1) { found_type_chademo = true - console.log('tag chademo', tag) + // console.log('tag chademo', tag) power = 63 } let value = feature.properties.tags[tag] if (value && tag.toLowerCase().indexOf('output') !== -1) { - console.log('tag contient output', tag, value) + // console.log('tag contient output', tag, value) value = '' + value if (value.replace) { value = value.replace(' ') @@ -200,13 +199,13 @@ function guessOutputPowerFromFeature (feature) { let power = parseInt(value) // deviner les types de prises présents - if (power) { - console.log('power', power) - console.log('outputPower', outputPower) - } + // if (power) { + // console.log('power', power) + // console.log('outputPower', outputPower) + // } if (power > outputPower) { outputPower = power - console.log('power', power) + // console.log('power', power) } } } @@ -215,15 +214,20 @@ function guessOutputPowerFromFeature (feature) { return outputPower } +// 2024-12-16: au delà d'une valeur de 400kW on peut dire qu'il existe une erreur de saisie, nous n'avons pas de chargeur de 1800kW en production. +const max_out_legit_power = 400 +const error_color = 'red' function getColor (feature) { let outputPower = guessOutputPowerFromFeature(feature) feature.properties.tags.has_output_of_irve_specified = outputPower if (outputPower) { + if(outputPower> max_out_legit_power){ + return error_color; + } let index = Math.min(Math.floor(outputPower / 10), colors.length - 1) - console.log('outputPower', outputPower) - // console.log('colors[index]', colors[index]) + return colors[index] } // autrement, sans puissance max trouvée, on met la couleur des indéfinis @@ -268,7 +272,7 @@ function displayStatsFromGeoJson (resultAsGeojson) { // console.log('tagKey', tagKey) if (tagKey.indexOf('type2_combo') !== -1) { found_type2_combo = true - console.log('tagkey trouvé combo', tagKey) + // console.log('tagkey trouvé combo', tagKey) } if (tagKey.indexOf('type2') !== -1) { found_type2 = true @@ -341,11 +345,11 @@ let geojsondata function bindEventsOnJosmRemote () { let josm_remote_buttons = $(`.josm`) - console.log('josm_remote_buttons', josm_remote_buttons[0]) + // console.log('josm_remote_buttons', josm_remote_buttons[0]) $(josm_remote_buttons[0]).on('click', () => { - console.log('link', josm_remote_buttons[0]) + // console.log('link', josm_remote_buttons[0]) let josm_link = $(josm_remote_buttons[0]).attr('data-href') - console.log('lancer la télécommande josm', josm_link) + // console.log('lancer la télécommande josm', josm_link) $.get(josm_link, (res) => { console.log('res', res) }) @@ -357,7 +361,7 @@ const ratio_circle = 0.9 function displayPointsFromApi (points) { geojsondata = osmtogeojson(points) - console.log('resultAsGeojson', geojsondata) + // console.log('resultAsGeojson', geojsondata) displayStatsFromGeoJson(geojsondata) let resultLayer = L.geoJson(geojsondata, { @@ -380,13 +384,32 @@ function displayPointsFromApi (points) { return true }, onmoveend: function (event) { - console.log('déplacement terminé') + // console.log('déplacement terminé') }, onzoomend: function (event) { - console.log('event', event) + // console.log('event', event) }, onEachFeature: function (feature, layer) { let popupContent = '' + + popupContent+='
' + let type2 = feature.properties.tags['socket:type2'] + let type2_combo = feature.properties.tags['socket:type2_combo'] + if(type2){ + popupContent+=' prise de type 2' + if(type2!=='yes'){ + popupContent+= 'x '+type2+'' + } + } + if(feature.properties.tags['socket:type2_combo']){ + + popupContent+=' prise de type 2 combo CCS' + if(type2_combo!=='yes'){ + popupContent+= 'x '+type2_combo+'' + } + } + popupContent+='
' + popupContent+='
' // ne montrer que certains champs dans la popup tags_to_display_in_popup.forEach(function (key) { if (tags_to_display_in_popup.indexOf(key)) { @@ -399,7 +422,7 @@ function displayPointsFromApi (points) { } } }) - // popupContent = popupContent + '' + popupContent += '
' layer.bindPopup(popupContent) let outPowerGuessed = guessOutputPowerFromFeature(feature) @@ -409,8 +432,7 @@ function displayPointsFromApi (points) { displayOutPowerGuessed = outPowerGuessed + ' kW max' } if (!popupContent) { - popupContent = ` Aucune information renseignée, - + popupContent = ` Aucune information renseignée, ajoutez la dans OpenStreetMap!` } let link_josm = createJOSMEditLink(feature) @@ -449,7 +471,7 @@ function displayPointsFromApi (points) { bindEventsOnJosmRemote() }, mouseout: function () { - setTimeout(() => this.closePopup(), 3000) + // setTimeout(() => this.closePopup(), 15000) }, click: function () { this.openPopup() @@ -458,14 +480,12 @@ function displayPointsFromApi (points) { }, }) - // link josm buttons to get request - } function makeCssClassFromTags (tags) { - console.log('tags', tags) + // console.log('tags', tags) let tagKeys = Object.keys(tags) - console.log('tagKeys', tagKeys) + // console.log('tagKeys', tagKeys) if (!tags) { return '' } @@ -490,10 +510,7 @@ function getIconFromTags (tags) { // $('#toggleMinPower_50').on('click', toggleMinPower(50)) // $('#toggleMinPower_100').on('click', toggleMinPower(100)) // document.getElementById('toggleMinPower_300').addEventListener('click', toggleMinPower(showHighPower)) -$('#query-button').on('click', function () { - supprimerMarqueurs(map) - loadOverpassQuery() -}) + function toggleMinPower (showHighPower) { console.log('toggle', showHighPower) @@ -557,3 +574,14 @@ $(document).ready(function () { bindEventsOnJosmRemote() onMapMoveEnd() }) +/* +boutons de toggle + */ + +// test +$('#test').on('click', function () { + console.log('filteredMarkers', filteredMarkers) + + supprimerMarqueurs(map) + // loadOverpassQuery() +}) diff --git a/styles/images/layers.png b/styles/images/layers.png new file mode 100644 index 0000000..d2a6a8c Binary files /dev/null and b/styles/images/layers.png differ diff --git a/styles/style.css b/styles/style.css index 305ee33..51f78e9 100644 --- a/styles/style.css +++ b/styles/style.css @@ -179,6 +179,8 @@ a { } .popup-content { + width: 100%; + display: block; overflow: auto; min-width: 10rem; max-width: 20rem; @@ -296,3 +298,19 @@ button{ /*background: grey;*/ /*border-right: 1px solid white;*/ } + +.key-values{ + max-height: 4rem; + overflow: auto; + width: 100%; + display: block; +} + +.icon-img{ + width: 3rem; + height: 3rem; + fill: #000; +} +.sockets-list{ + margin-top: 1rem; +}