From 8d9962f5a1fc3f46f1749ab06011795733e6c8c9 Mon Sep 17 00:00:00 2001 From: Tykayn Date: Sat, 14 Dec 2024 18:00:09 +0100 Subject: [PATCH] =?UTF-8?q?liens=20itin=C3=A9raire?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/main.js | 148 ++++++++++++++++++++++++++++------------------- styles/style.css | 26 ++++++--- 2 files changed, 106 insertions(+), 68 deletions(-) diff --git a/js/main.js b/js/main.js index dba0413..a57bbd1 100644 --- a/js/main.js +++ b/js/main.js @@ -17,48 +17,70 @@ let unknown_color = '#c0b1b1' // color for unknown power output of the station // https://tile.openstreetmap.org/{z}/{x}/{y}.png // 'https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png' const tileServer = 'https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png' +const tileServer_stamen = 'https://stamen-tiles.a.ssl.fastly.net/toner/{z}/{x}/{y}.png' // Créer la carte centrée sur Rouen // Liste des 20 villes les plus peuplées de France avec leurs coordonnées géographiques let cities = [ - { 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] } -]; + { 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] } +] // Choix au hasard d'une ville parmi la liste -let randomCity = cities[Math.floor(Math.random() * cities.length)]; +let randomCity = cities[Math.floor(Math.random() * cities.length)] console.log('randomCity', randomCity) // Initialisation de la carte avec la vue centrée sur la ville choisie -let map = L.map('map').setView(randomCity.coords, initialZoom); +let map = L.map('map').setView(randomCity.coords, initialZoom) -// var map = L.map('map').setView([49.4438, 1.0993], initialZoom) -// 'https://overpass-api.de/api/interpreter?data=[out:json][timeout:25];' + -// 'area(id:3600075628)->.searchArea;' + -// 'node[amenity=charging_station](area.searchArea);' + -// 'out body geom;' +var osm = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { + attribution: osmMention+'© OpenStreetMap contributors' +}) -L.tileLayer(tileServer, { - maxZoom: 21, - attribution: osmMention, -}).addTo(map) +var cycle = L.tileLayer('https://{s}.tile.opencyclemap.org/{z}/{x}/{y}.png', { + attribution: osmMention+'© OpenCycleMap contributors' +}) + +var transport = L.tileLayer('https://{s}.tile.thunderforest.com/transport/{z}/{x}/{y}.png', { + attribution: osmMention +}) + +let tileGrey = + L.tileLayer(tileServer, { + attribution: osmMention + }) +let stamen = + L.tileLayer(tileServer_stamen, { + attribution: osmMention + }) +var baseLayers = { + 'Grey': tileGrey, + 'Stamen': stamen, + 'OpenStreetMap': osm, + 'OpenCycleMap': cycle, + 'Transport': transport +} + +let overlays = {} // Si vous avez des calques superposables, ajoutez-les ici + +const layerControl = L.control.layers(baseLayers, overlays, { collapsed: true }).addTo(map) let filteredMarkers = L.layerGroup().addTo(map) @@ -110,17 +132,18 @@ const tags_to_display_in_popup = [ 'authentication:app', 'authentication:debit_card', ] -const margin_josm_bbox= 0.00001 -function createJOSMEditLink(feature) { +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; - var right = coordinates[0] + margin_josm_bbox; - var bottom = coordinates[1] - margin_josm_bbox; - var top = coordinates[1] + margin_josm_bbox; - var josmUrl = `http://127.0.0.1:8111/load_and_zoom?changeset_hashtags=IRVE&layer_name=irve-depuis-OSM&left=${left}&top=${top}&right=${right}&bottom=${bottom}&select=${nodeId}`; - return josmUrl; + var coordinates = feature.geometry.coordinates + var nodeId = feature.properties.id + var left = coordinates[0] - margin_josm_bbox + var right = coordinates[0] + margin_josm_bbox + var bottom = coordinates[1] - margin_josm_bbox + var top = coordinates[1] + margin_josm_bbox + var josmUrl = `http://127.0.0.1:8111/load_and_zoom?changeset_hashtags=IRVE&layer_name=irve-depuis-OSM&left=${left}&top=${top}&right=${right}&bottom=${bottom}&select=${nodeId}` + return josmUrl } function supprimerMarqueurs (map) { @@ -314,21 +337,23 @@ ${count_estimated_type2combo} (${calculerPourcentage(count_estimated_type2combo, $('#bars_power').html(bar_powers) } -let geojsondata; +let geojsondata function bindEventsOnJosmRemote () { let josm_remote_buttons = $(`.josm`) - console.log('josm_remote_buttons',josm_remote_buttons[0]) - $(josm_remote_buttons[0]).on('click',()=>{ + console.log('josm_remote_buttons', josm_remote_buttons[0]) + $(josm_remote_buttons[0]).on('click', () => { 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) - $.get(josm_link, (res)=>{ + $.get(josm_link, (res) => { console.log('res', res) }) }) } + const ratio_circle = 0.9 + function displayPointsFromApi (points) { geojsondata = osmtogeojson(points) @@ -354,7 +379,7 @@ function displayPointsFromApi (points) { } return true }, - onmoveend: function(event){ + onmoveend: function (event) { console.log('déplacement terminé') }, onzoomend: function (event) { @@ -390,7 +415,9 @@ function displayPointsFromApi (points) { } let link_josm = createJOSMEditLink(feature) console.log('link_josm', link_josm) - let html = `itinéraire 🚗🚴‍♀️👠 + // boutons d'itinéraire + + let html = ` 🚗🚴‍♀️👠 ✏️JOSM ${displayOutPowerGuessed}${popupContent}` let radius = 20 @@ -433,7 +460,6 @@ function displayPointsFromApi (points) { // link josm buttons to get request - } function makeCssClassFromTags (tags) { @@ -471,9 +497,9 @@ $('#query-button').on('click', function () { function toggleMinPower (showHighPower) { console.log('toggle', showHighPower) - showHighPower = !showHighPower; - addFilteredMarkers(showHighPower); - this.textContent = showHighPower ? "Montrer puissance haute" : "Montrer puissance normale"; + showHighPower = !showHighPower + addFilteredMarkers(showHighPower) + this.textContent = showHighPower ? 'Montrer puissance haute' : 'Montrer puissance normale' } function addFilteredMarkers (showHighPower) { @@ -515,19 +541,19 @@ $('#spinning_icon').hide() $('#message-loading').hide() function onMapMoveEnd () { - let center = map.getCenter(); - let zoom = map.getZoom(); + let center = map.getCenter() + let zoom = map.getZoom() let infos = `Lat: ${center.lat}, Lon: ${center.lng}, Zoom : ${zoom}` if (zoom > 10) { loadOverpassQuery() - }else{ - infos += "(zoomez au niveau 11 ou plus pour charger les stations en vous déplaçant)" + } else { + infos += '(zoomez au niveau 11 ou plus pour charger les stations en vous déplaçant)' } - $("#infos_carte").html(infos); + $('#infos_carte').html(infos) } -map.on('moveend', onMapMoveEnd); -$(document).ready(function() { - bindEventsOnJosmRemote(); +map.on('moveend', onMapMoveEnd) +$(document).ready(function () { + bindEventsOnJosmRemote() onMapMoveEnd() -}); +}) diff --git a/styles/style.css b/styles/style.css index 0341cf2..305ee33 100644 --- a/styles/style.css +++ b/styles/style.css @@ -61,8 +61,8 @@ h2 { #overpass-api-controls { position: fixed; - top: 0; - right: 1em; + top: -0.5rem; + left: 4em; padding: 10px; background-color: transparent; border: 0; @@ -93,6 +93,21 @@ img.leaflet-marker-icon.tag-socket\:type2_yes { border: solid 1px #497cd3ff; float: right; } +#query-button{ + min-width: 10em; +} +.navigation-link{ + background: white; + border-radius: 0.25em; + float:none; + position:relative; + top: 5.5em; + left: 0; +} +.navigation-link:hover{ + border: black; + background: #96b1ea; +} #query-button:hover, .edit-button:hover { @@ -106,9 +121,6 @@ img.leaflet-marker-icon.tag-socket\:type2_yes { } -#query-button { - min-width: 10em; -} .pull-left { float: left; @@ -143,8 +155,8 @@ a { #spinning_icon svg { position: fixed; - top: 1.5rem; - left: 0.8rem; + top: 0.5rem; + right: 3rem; background: white; border-radius: 100%; width: 3rem;