// initialisation des variables des parcelles var username=""; var Affiche_surface=""; var Affiche_surface_souscrite=""; var Affiche_borne=""; var Affiche_robinet=""; var Affiche_culture=""; var Affiche=""; //fin initialisation des variables des parcelles jQuery(document).ready(function($) { if (document.getElementById("initial")) { //1 // Initialisation au démarrage //désactiver document.getElementById("carteParcelle").disabled = true; document.getElementById("carteParcelle").value="Affichage de la Carte - Attendez"; //autoriser //document.getElementById("carteParcelle").disabled = false; //value="Affichage de la Carte" var data = { 'action': 'users_details', 'request': 1 }; $.ajax({ // Affichage liste des Communes url: ajaxurl, type: 'post', data: data, dataType: 'json', success: function(response) { $('#sel_Commune').empty(); $('#sel_Commune').append(""); $('#map').empty(); document.getElementById("info" ).innerHTML = ''; var len = response.length; console.log(response); for (var i = 0; i < len; i++) { var id = response[i].Commune; var commune = response[i].Commune; // Add option var option = ""; $("#sel_Commune").append(option); } } }); // Sélection Commune -> affichage des Lieux dits $('#sel_Commune').change(function() { //var commune = $(this).val(); commune = $(this).val(); // if (commune !== '') { $('#sel_Lieu_dit').empty(); // on vide la liste deux $('#sel_Parcelle').empty(); // on vide la liste trois $('#map').empty(); document.getElementById("info" ).innerHTML = ''; // var data = { 'action': 'users_details', 'request': 2, 'userid': commune }; $.ajax({ url: ajaxurl, type: 'post', data: data, dataType: 'json', success: function(response) { var len = response.length; console.log(response); if (len > 0) { $('#sel_Lieu_dit').append(""); var len = response.length; for (var i = 0; i < len; i++) { var id = response[i].Lieu_dit; var username = response[i].Lieu_dit; // Add option // var option = ""; var option = ''; $("#sel_Lieu_dit").append(option); } } //if } //response }); //ajax } }); //'#sel_Commune').change(function() // Sélection Lieux_dit -> affichage des Parcelles $('#sel_Lieu_dit').change(function() { var lieu = $(this).val(); if (lieu !== '') { $('#sel_Parcelle').empty(); // on vide la liste trois $('#map').empty(); document.getElementById("info" ).innerHTML = ''; var data = { 'action': 'users_details', 'request': 3, 'userid': lieu, 'commune': commune, }; $.ajax({ url: ajaxurl, type: 'post', data: data, dataType: 'json', success: function(response) { var len = response.length; if (len > 0) { $('#sel_Parcelle').append(""); var len = response.length; for (var i = 0; i < len; i++) { var id = response[i].Num_Parcelle; //var username = response[i].Num_Parcelle; username = response[i].Num_Parcelle; //début récupération paramètres parcelle Affiche_surface = response[i].Surface; Affiche_surface_souscrite = response[i].Surface_souscrite; Affiche_borne = response[i].Borne; Affiche_robinet = response[i].surface; Affiche_culture = response[i].Culture; // fin récupération paramètres parcelle // Add option var option = ""; $("#sel_Parcelle").append(option); } } //if } //response }); //ajax } }); //'#sel_Lieu_dit').change(function() // // Sélection des Parcelles -> Géocodage $('#sel_Parcelle').change(function() { valParc = $(this).val(); // on récupère la valeur de la parcelle if (valParc !== '') { $('#map').empty(); decompose(valParc); document.getElementById("info" ).innerHTML = Affiche; codePar = formatParcelle(valParc); //codeParcelle(valCom,codePar); codeParcelle(commune, codePar); coordPar(geoCode); // appel des services IGN } //if }); //'#sel_Parcelle').change(function() function codeParcelle(valCom, codePar) { switch (valCom) { // Complément du code parcellaire avec le code INSEE de la Commune + 000 pour le cas où Commune rattachée. case "LA SAULCE": geoCode = "05162000" + codePar; break; case "LARDIER": geoCode = "05071000" + codePar; break; case "LE POET": geoCode = "05103000" + codePar; break; case "LETTRET": geoCode = "05074000" + codePar; break; case "MISON": geoCode = "04123000" + codePar; break; case "MONETIER ALLEMONT": geoCode = "05078000" + codePar; break; case "SISTERON": geoCode = "04209000" + codePar; break; case "TALLARD": geoCode = "05170000" + codePar; break; case "UPAIX": geoCode = "05173000" + codePar; break; case "VALERNES": geoCode = "04231000" + codePar; break; case "VENTAVON": geoCode = "05178000" + codePar; break; case "VITROLLES": geoCode = "05184000" + codePar; break; default: geoCode = "Echec"; } } // Met en forme le code Communal de la parcelle function formatParcelle($parcelle) { position = $parcelle.indexOf(" "); if (position == 1) { $parcelle = "0" + $parcelle; } $parcelle = $parcelle.replace(" ", ""); $parcelle = $parcelle.substr(0, 6); return $parcelle; } // Décompose valParc en données détaillées de la parcelle recherchée function decompose($parcelle) { position1 = $parcelle.indexOf("~"); position2 = $parcelle.indexOf("~",position1 +1 ); position3 = $parcelle.indexOf("~",position2 +1 ); position4 = $parcelle.indexOf("~",position3 +1 ); position5 = $parcelle.indexOf("~",position4 +1 ); Affiche_surface = valParc.substr(position1+1, position2-position1-1); Affiche_surface_souscrite= valParc.substr(position2+1, position3-position2-1); Affiche_borne= valParc.substr(position3+1, position4-position3-1); if(Affiche_borne=="undefined") (Affiche_borne=""); Affiche_robinet= valParc.substr(position4+1, position5-position4-1); if(Affiche_robinet=="undefined") (Affiche_robinet=""); Affiche_culture= valParc.substr(position5+1); Affiche="Surface de la parcelle: "+Affiche_surface+" m², Surface souscrite: "+ Affiche_surface_souscrite+" m², Numéro de borne: "+Affiche_borne+", Numéro de robinet: "+Affiche_robinet+", Culture: "+Affiche_culture+" ~ "; } } //fin 1 }); // fin document Ready déplacé pour englober le reste des fonctions // début des tests des réponses des serveurs de l'IGN function coordPar(locationVar) { //var resultDiv = document.getElementById("result"); httpRequest = new XMLHttpRequest(); httpRequest.onreadystatechange = function(){ if (httpRequest.readyState === XMLHttpRequest.DONE && httpRequest.status === 200) { //OK200; url = "https://geocodage.ign.fr/look4/parcel/search?q=" + locationVar; fetch(url) .then(response => response.json()) .then(data => { var locations = data.features; let feature = locations[0]; if (typeof feature !== 'undefined') { yretour = (feature.geometry.coordinates[0]); xretour = (feature.geometry.coordinates[1]); //.catch(error => console.error(error)); } else{Gp.Services.geocode({ apiKey: "choisirgeoportail", // location: locationVar, filterOptions: {type: "CadastralParcel"}, onSuccess: function(result) { xretour=(JSON.stringify(result.locations[0]["position"]["x"])) yretour=(JSON.stringify(result.locations[0]["position"]["y"])) xretour= parseFloat (xretour) yretour= parseFloat (yretour) document.getElementById("info" ).innerHTML = Affiche+'Ancien GEOCODAGE!'; document.getElementById("carteParcelle").disabled = false; document.getElementById("carteParcelle").value="Affichage de la Carte"; } }); return } }) document.getElementById("info" ).innerHTML = Affiche+'Nouveau GEOCODAGE!'; document.getElementById("carteParcelle").disabled = false; document.getElementById("carteParcelle").value = "Affichage de la Carte"; }// fin 200 else if (httpRequest.readyState === XMLHttpRequest.DONE){ //if (httpRequest.status === 404){ // 404 pour les tests //if (httpRequest.status === 503) { if (httpRequest.status === 503 || httpRequest.status === 0){ Gp.Services.geocode({ apiKey: "choisirgeoportail", location: locationVar, filterOptions: {type: "CadastralParcel"}, onSuccess: function(result) { xretour=(JSON.stringify(result.locations[0]["position"]["x"])) yretour=(JSON.stringify(result.locations[0]["position"]["y"])) xretour= parseFloat (xretour) yretour= parseFloat (yretour) document.getElementById("info" ).innerHTML =Affiche+'Ancien GEOCODAGE!'; document.getElementById("carteParcelle").disabled = false; document.getElementById("carteParcelle").value="Affichage de la Carte"; } }); } // fin 503-404 }// fin readyState DONE } // fin httpRequest.onreadystatechange httpRequest.open('GET', 'https://geocodage.ign.fr/look4/getCapabilities'); //httpRequest.open('GET', 'https://geocodage.ign.fr/look3/getCapabilities'); // Test pour 404 httpRequest.send(); } // fin coordPar // Affichage Carte function afficheCarte() { Gp.Services.getConfig({ apiKey: "choisirgeoportail", onSuccess: go //Appel fonction go() }); } //fonction go() Affichage des couches du Layers --> function go() { }// fin function GO