libre-charge-map/js/editor.js
2024-12-28 17:59:15 +01:00

52 lines
1.7 KiB
JavaScript

/**
* 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
};