// Déclaration de la map var map = L.map('map').setView([50.880301, 6.560531], 13,); //Déclaration du calque L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 20, }).addTo(map); // Création de la classe threeIcon // TODO: Adjust all the values var threeIcon = L.Icon.extend({ options: { iconSize: [53, 75], iconAnchor: [53 / 2, 75], shadowAnchor: [4, 62], popupAnchor: [-3, -76] } }); // Création de l'icon BAUM var baumIcon = new threeIcon({ iconUrl: 'baum.png' }); // Création de l'icon BOUDOIR var boudoirIcon = new threeIcon({ iconUrl: 'boudoir.png' }); //Création d'un objet cluster //var cluster1 = L.markerClusterGroup(); // //Import des données JSON du fichier historiqueMarqueurs.json (fonctionne si et seulement si le serveur est online) // (à l'avenir mettre en place une petite base de données type Firebase) fetch('historiqueMarqueurs.json') .then(response => response.json()) // Ajout des marqueurs du fichier JSON grâce à la fonction addMarkersFromJson .then(json => addMarkersFromJson(json)) //Erreur .catch(error => console.error('Could not load markers', error)); // Fonction ajout des marqueurs depuis le fichier JSON function addMarkersFromJson(json) { for (var i = 0; i < json.length; i++) { var markerData = json[i]; var markerIcon = markerData.icon === 'baum' ? baumIcon : boudoirIcon; var marker = L.marker([markerData.latitude, markerData.longitude], {icon : markerIcon}).addTo(map); marker.bindPopup('

' + markerData.title + '

' + '

' + markerData.date + '

' + '

' + markerData.desc + '

'); //cluster1.addLayer(marker) //map.addLayer(cluster1); } } // Fonction ajout marqueur function addMarker(e) { alert("coucou"); // Récupérer la valeur du select-icon pour ajouter la bonne icône var select = document.getElementById('three-select').value; // Récupérer latitude et longitude var latitude = e.latlng.lat; var longitude = e.latlng.lng; // Création d'un formulaire lors de l'ajout d'un marqueur var form = document.createElement('form'); form.id = "myForm" // Format du formulaire form.innerHTML = '' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
'; // Sélection de la bonne icône en fonction du select switch (select) { case 'boudoir': //Ajout de l'icône à la carte var marker = L.marker([e.latlng.lat, e.latlng.lng], { icon: boudoirIcon }).addTo(map).bindPopup(form); //Ajout de du marqueur au cluster break; case 'baum': //Ajout de l'icône à la carte var marker = L.marker([e.latlng.lat, e.latlng.lng], { icon: baumIcon }).addTo(map).bindPopup(form); //Ajout de du marqueur au cluster break; case 'default': break; } // Ajout de l'action pour le formulaire form.action = "ecrire_json.php"; // Lors du submit form.addEventListener('submit', function (event) { // Empêche le rechargement de la page event.preventDefault(); //Récupérer les valeurs des champs précedémment remplis var title = document.getElementById('marker-title').value; var date = document.getElementById('marker-date').value; var date2 = document.getElementById ('marker-date2').value; var desc = document.getElementById('marker-desc').value; //Actualisation de la pop-up avec les informations marker.setPopupContent('

' + title + '

' + '

' + date + '

' + '

' + date2 + '

' + '

' + desc + '

'); // Création d'un objet contenant les données à envoyer var data = { "lat": latitude, "lng": longitude, "category": select, "title": title, "date": date, "date2": date2, "description": desc }; // Conversion des données en chaîne JSON var jsonData = JSON.stringify(data); // Envoi des données au serveur via une requête AJAX var xhr = new XMLHttpRequest(); xhr.open("POST", "enregistrer_donnees.php", true); xhr.setRequestHeader("Accept", "application/json"); xhr.send(jsonData); }); //map.addLayer(cluster1); // Conversion des données en chaîne JSON var jsonData = JSON.stringify(data); // Envoi des données au serveur via une requête AJAX var xhr = new XMLHttpRequest(); xhr.open("POST", "enregistrer_donnees.php", true); xhr.setRequestHeader("Accept", "application/json"); xhr.send(jsonData); } map.on("click", addMarker); // Récupération des données entrées par l'utilisateur //var data = { // "latitude": document.getElementById("latitude").value, // "longitude": document.getElementById("longitude").value, // "icon": document.getElementById("icon").value, // "title": document.getElementById("title").value, // "date2": document.getElementById("date2").value, // "date": document.getElementById("date").value, // "desc": document.getElementById("desc").value // }; // // // // //// Récupération des données du formulaire //var title = document.getElementById('marker-title').value; //var date = document.getElementById('marker-date').value; //var date2 = document.getElementById('marker-date2').value; //var desc = document.getElementById('marker-desc').value; // // // /////test openai // //document.getElementById("myForm").addEventListener("submit", function(event) { // event.preventDefault(); // sendData(); // }); // // // function sendData() { // const form = document.getElementById("myForm"); // const formData = new FormData(form); // // fetch("ecrire_json.php", { // method: "POST", // body: formData // }) // .then(response => response.json()) // .then(data => console.log(data)) // .catch(error => console.error(error)); // } // Pour ajouter un commentaire, ne fonctionne pas // document.getElementById('addComment').addEventListener('click', function (e){ // // Empêche le rechargement de la page // event.preventDefault(); // // Création d'un formulaire lors de l'ajout d'un commentaire // var form2 = document.createElement('form'); // // Format du formulaire // form2.innerHTML = // '
' + // '
' + // '
' + // '
' + // '
' + // '
' + // '
'; // form2.addEventListener('submit', function (event) { // // Empêche le rechargement de la page // event.preventDefault(); // //Récupérer les valeurs des champs précedémment remplis // var date2 = document.getElementById('marker-date2').value; // var desc2 = document.getElementById('marker-desc2').value; // marker.setPopupContent('

' + title + '

' + '

' + date + '

' + '

' + desc + '

' + '

' + date2 + '

' + '

' + desc2 + '

' + ''); // }); // });