Bonjour !
Je débute en développement et je cherche à comprendre le code ci-dessous, si quelqu’un peut me l’expliquer en détail je vous en serrais grandement reconnaissant par exemple qu’est ce que : (verb, url) dans "req.open(verb, url);".
Je pense avoir compris que l’on créer une fonction que l’on appel "Request" et qu’elle est appeler par le second morceau de code ce qui fait apparaître des marqueurs sur une carte, mais j’aimerai de plus amples détails.
Merci d’avance.
function Request(verb, url) {
this.verb = verb;
this.url = url;
var stations = [];
this.call = function(callback) {
var req = new XMLHttpRequest();
req.open(verb, url);
req.addEventListener('load', function() {
if (req.status >= 200 && req.status < 400) {
stations = JSON.parse(req.responseText);
callback(req.responseText);
} else {
callback(req.status);
}
});
req.addEventListener('error', function() {
console.log("erreur avec l'url " + url);
});
req.send(null);
};
this.form = function(callback) {
callback(stations);
};
}
var requestApiJcDecaux = new Request("GET",
"https://api.jcdecaux.com/vls/v1/stations?contract=Toulouse&apiKey=xxxxxxxxxxxxxxxxxx");
requestApiJcDecaux.call(function (response) {
response = JSON.parse(response);
response.forEach(function (info) {
var latitude = info.position.lat;
var longitude = info.position.lng;
L.marker([latitude, longitude]).on('click', onMarkerClick).addTo(map);
});
function onMarkerClick(e) {
var addressElt = document.getElementById("address");
var bikeStandsElt = document.getElementById("bikeStands");
var availableBikesElt = document.getElementById("availableBikes");
requestApiJcDecaux.form(function (infos) {
infos.forEach(function (info) {
if ((e.latlng.lat === info.position.lat) && (e.latlng.lng === info.position.lng)) {
addressElt.innerText = info.address;
bikeStandsElt.innerText = info.bike_stands;
availableBikesElt.innerText = info.available_bikes;
return;
}
});
});
}
});
Edit: Suppression de l’API Key
+0
-0