/** * Fonctions liées à l'édition des données OSM et à l'interaction avec JOSM */ /** * Envoyer les bornes de recharge de la zone visible à JOSM * @param {*} map */ function sendToJOSM(map) { const bounds = map.getBounds(); const bbox = `${bounds.getWest()},${bounds.getSouth()},${bounds.getEast()},${bounds.getNorth()}`; const josmUrl = `http://127.0.0.1:8111/load_and_zoom?left=${bounds.getWest()}&right=${bounds.getEast()}&top=${bounds.getNorth()}&bottom=${bounds.getSouth()}&select=node[amenity=charging_station]`; fetch(josmUrl) .then(response => { if (response.ok) { alert('Données envoyées à JOSM avec succès !'); } else { alert('Erreur : JOSM doit être ouvert avec l\'option "Contrôle à distance" activée'); } }) .catch(error => { console.error('Erreur JOSM:', error); alert('Erreur : JOSM doit être ouvert avec l\'option "Contrôle à distance" activée'); }); } const margin_josm_bbox = 0.00001 /** * lien pour éditer une station de recharge dans JOSM * @param {*} feature * @returns */ function createJOSMEditLink(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 } export { sendToJOSM, createJOSMEditLink };