//require moment.js var predicts=[]; class Predict { constructor(){ this.spa="unknown"; this.type='burst'; this.burstAlt=0.0; this.latitude=0.0; this.longitude=0.0; this.altitude=0.0; this.time=""; this.marker= null; } parseCSV(predictCsv) { var predict=predictCsv.split(","); this.type=predict[0]; this.spa=predict[1].trim(); this.burstAlt=predict[2]; this.time=predict[3]; this.latitude=predict[4]; this.longitude=predict[5]; this.altitude=predict[6]; } getLastFrameTime(){ return moment(this.time).format("DD HH:mm:ss"); } getId(){ return this.spa+"_"+this.type+"_"+this.burstAlt; } } function getPredictData(mymap){ nocache = "&nocache="+ Math.random() * 1000000; var request = new XMLHttpRequest(); request.onreadystatechange = function(){ if (this.readyState == 4){ if (this.status == 200){ if (this.responseText != null){ //document.getElementById("mapmenu").innerHTML = this.responseText; var csvData=this.responseText.split("\n"); csvData.splice(-1); menuInner=""; //sondeLayer=null; for(line in csvData ) { //if (line>9) break; var predictPar=new Predict(); predictPar.parseCSV(csvData[line]); if(typeof predicts[predictPar.getId()] === 'undefined') { predicts[predictPar.getId()]=predictPar; var iconP=touchdownIcon; if (predictPar.type == 'burst') iconP=burstIcon; predictPar.marker= predictMarker=L.marker([predictPar.latitude, predictPar.longitude],{icon: iconP}) .bindPopup(""+predictPar.spa+"
"+predictPar.type+" "+predictPar.burstAlt+" "+predictPar.time).addTo(mymap); updatePredictList(predictPar); } //if typeof } //for } //if response } //if status 200 } } request.open("GET", "getcsvpred.php", true); request.send(null); } function updatePredictList(predictPar){ var idItem="predict_item_"+predictPar.getId(); var div = document.getElementById(idItem); item= "
" +"" +"
"; if (div === null) { var newItem=document.createElement("div"); newItem.id=idItem; newItem.innerHTML=item; var controlPredict=document.getElementsByClassName('Predict leaflet-control')[0]; //menu.insertBefore(newItem,menu.childNodes[0]); controlPredict.appendChild(newItem); } /*else { //sondeDetail.innerHTML=getSondeDetailContent(sondePar); } */ } function cleanOldPredicts(){ //for (i=predict.length-1;i>=0,i--) { //if predict[i].time //} }