diff --git a/src/app/pages/tecnalia-module/noise-comp/noise-comp.component.html b/src/app/pages/tecnalia-module/noise-comp/noise-comp.component.html
index 25a766fe650679193721e4212965ad9f86f05e09..c8cc1bf38de9f56e0ebe53e24ca02d19a9023984 100644
--- a/src/app/pages/tecnalia-module/noise-comp/noise-comp.component.html
+++ b/src/app/pages/tecnalia-module/noise-comp/noise-comp.component.html
@@ -25,11 +25,20 @@
                         <button style="left:10px" id="erase_run_btn"    (click)="erase_run();">Erase</button>
                         <button style="left:10px" id="show_run_btn"     (click)="printPnts();">Show</button>
                     </div>  
+                    <div class="row" style="top:60px;position:absolute;left:30px">
+                        New GeoJSON: <select id="newgeojson_combo" style="width:250px"></select> 
+                        <button style="left:10px" id="show_newgeojson" (click)="printNewGeoJSON();">Show</button>
+                    </div>                      
             </div>   
             
             <div class="control_box button_box" id="control_help" style='width:300px;'>
-                <button  (click)="openInstructions()"> Help</button>
-                <button  id="update_runs_btn" (click)="update_runs();">Update</button>
+                <!--
+                <div class="row" style="padding-left:15px">
+                    <button style="width:139px" (click)="openInstructions()"> Help</button>
+                    <button style="width:139px" id="update_runs_btn" (click)="update_runs();">Update</button>
+                </div>-->
+                <button (click)="openInstructions()"> Help</button>
+                <button  id="update_runs_btn"    (click)="update_runs();">Update</button>                
                 <button  id="upload_geojson_btn" (click)="upload_geojson();">Upload GEOJSON to Storage</button>
                 <button  id="download_run_btn"   (click)="downloadPnts();">Download</button>
             </div>        
@@ -141,4 +150,26 @@
             </div>
         </div>
     </div>
+</div>
+
+<div class="modal" id="newNewGeoJSONModal" style='display:none;z-index:2000'>
+    <div class="modal-content" style="width:80%;height:170px">
+        <button type="button" class="close" data-dismiss="modal" aria-label="Close" (click)="closenewNewGeoJSONModal();">
+            <span aria-hidden="true">&times;</span>
+        </button>
+        <div class="modal-header">
+
+        </div>
+        <div class="modal-body" style="width:100%;height:100%">
+            <div class="form-title text-center mb-2" style="width:100%;height:95%">
+                <div id='top-right' style='height:100%;width:100%;margin-top:5px'>
+                    <div class="row" id="loginModalTitle2"><strong>Process New GeoJSON:</strong></div>
+                    <div class="row" id="nameNGJ">name</div>                   
+                </div>
+            </div>
+        </div>
+        <div style="position:absolute;bottom:10px;">
+            <button (click)="process_newgeojson();">Submit</button>
+        </div>
+    </div>
 </div>
\ No newline at end of file
diff --git a/src/app/pages/tecnalia-module/noise-comp/noise-comp.component.ts b/src/app/pages/tecnalia-module/noise-comp/noise-comp.component.ts
index 305ff4299d1d0a80099d96186795f01e9e42f6e2..714012e6979705adf67a5a3f043c42cde5dc3c78 100644
--- a/src/app/pages/tecnalia-module/noise-comp/noise-comp.component.ts
+++ b/src/app/pages/tecnalia-module/noise-comp/noise-comp.component.ts
@@ -60,6 +60,8 @@ export class NoiseCompComponent implements OnInit {
   public filename:String;
   public trafficFilename:String;
   public map_names = [];
+  public newgeojson_names = [];
+  public newgeojsons = [];
   public model_names = [];
   public traffic_names = [];
   public static newSquareLayer;
@@ -286,6 +288,27 @@ export class NoiseCompComponent implements OnInit {
     //document.getElementById("mapasCB").value = -1;
   }
 
+  getNewGeoJSONS0(data,ttype){
+    var select = document.getElementById("newgeojson_combo");
+    select.innerHTML = "";
+    console.log('getNewGeoJSONS0::: data='+JSON.stringify(data));
+    this.newgeojson_names = [];
+    for(var i = 0; i < data.length; i++) {
+        console.log("getNewGeoJSONS0::: data["+i+"]="+JSON.stringify(data[i]));
+        var opt = data[i];
+        var el = document.createElement("option");
+        el.textContent = i+": "+opt["name"];
+        this.newgeojson_names.push(opt["name"]);
+        this.newgeojsons.push(opt);
+        el.value = i+"";
+        console.log("getNewGeoJSONS0::: value="+el.value);
+        select.appendChild(el);
+    };
+    if ( ttype === 1 ){
+      this.getMapsFromDB(ttype);
+    }
+    console.log("getNewGeoJSONS0::: success data="+JSON.stringify(data));
+  }
 
   getModelsFromDB0(data, ttype){
     console.log('getModelsFromDB0='+JSON.stringify(data));
@@ -482,6 +505,66 @@ export class NoiseCompComponent implements OnInit {
     }
   }
 
+  printNewGeoJSON(){
+    let sel = document.getElementById('newgeojson_combo') as HTMLSelectElement;
+    console.log('printNewGeoJSON::: value =\t'+sel.value);
+    console.log('printNewGeoJSON::: valueI=\t'+parseInt(sel.value));
+    if ( parseInt(sel.value) !== -1 ){
+        let ps = this.pnts[this.gidx];
+        let vl = this.vals63[this.gidx];
+
+        if ( ps != null ){
+          console.log('printPnts::: ps.length='+ps.length);
+        }
+        if ( vl != null ){
+          console.log('printPnts::: vl.length='+vl.length);
+        }
+        let max = this.getMax(vl);
+        console.log('printPnts::: max(vl)='+max);
+        let qs = this.getQuantiles(vl);
+        console.log('db.js.printPnts::: qs='+qs);
+        for(let j=0;j<this.marks.length;j++){
+            this.map.removeLayer(this.marks[j]);
+        }
+        if ( this.legend instanceof L.Control ){
+            let ddiv = document.getElementById('legend_div');
+            ddiv.parentNode.removeChild(ddiv);
+            ddiv.innerHTML = '';
+            this.legend.remove;
+        }
+        this.marks =[];
+        if ( ps != null ){
+          for(let j=0;j<ps.length;j++){
+              let mark = L.circle(ps[j], {radius: 2, color: this.getClr2(vl,j,qs), opacity:.5}).addTo(this.map);
+              this.marks.push(mark);
+          }
+        }
+        this.legend = new L.Control({position: 'bottomleft'});
+        this.legend.onAdd = function (map) {
+            var div = L.DomUtil.create('div', 'info legend');
+            div.id = 'legend_div';
+            div.style.background = '#C0C0C0DD';
+            div.style.width = '150px';     
+            div.style.paddingTop = '10px';
+            div.style.paddingBottom = '20px';
+            let labels = [];        
+            div.innerHTML +=
+                    labels.push('<div style="width:25px;height:12px;padding-left:10px;white-space:nowrap;"><div style="width:25px;height:20px;background:#303030"></div><label style="position:absolute;left:45px;top:12px"> &leq; '+qs[0].toFixed(2)+'</label></div>');
+            for (let i = 0; i < qs.length-1; i++) {
+                let vv = qs[i].toFixed(2) + ' &harr; ' + qs[i+1].toFixed(2);
+                div.innerHTML +=
+                    labels.push('<div style="width:25px;height:12px;padding-left:10px;white-space:nowrap;"><div style="width:25px;height:20px;background:' + NoiseCompComponent.colors[i] + '"></div><label style="position:absolute;left:45px;top:' + (12 + 30 * (i+1)) + 'px">' + vv + '</label></div>');
+            }
+            let i = qs.length-1;
+            div.innerHTML +=
+                    labels.push('<div style="width:25px;height:12px;padding-left:10px;white-space:nowrap;"><div style="width:25px;height:20px;background:' + NoiseCompComponent.colors[i] + '"></div><label style="position:absolute;left:45px;top:' + (12 + 30 * (i+1)) + 'px"> &geq; '+qs[i].toFixed(2)+'</label></div>');
+            div.innerHTML = labels.join('<br>');
+            return div;         
+        };
+        this.legend.addTo(this.map);
+    }
+  }
+
   getModelsFromDB(ttype){
     this.getNoiseComputationService.getModels().subscribe(res => this.getModelsFromDB0(res,ttype), err => console.log("getModelsFromDB::: ERROR: err="+err));
   }
@@ -494,6 +577,10 @@ export class NoiseCompComponent implements OnInit {
     this.getNoiseComputationService.getMaps().subscribe(res => this.getMapsFromDB0(res,ttype), err => console.log("getMapsFromDB::: ERROR: err="+err));
   }
 
+  getNewGeoJSONsFromDB(ttype){
+    this.getNoiseComputationService.getNewGeoJSONs().subscribe(res => this.getNewGeoJSONS0(res,ttype), err => console.log("getMapsFromDB::: ERROR: err="+err));
+  }
+
   new_map(){
     document.getElementById('newMapModal').style.display = 'block';
     let ele1 = document.getElementById('map_combo') as HTMLSelectElement;
@@ -508,7 +595,8 @@ export class NoiseCompComponent implements OnInit {
       let bbox = JSON.parse(ele1.options[ele1.selectedIndex].value.split('#')[1]);
       let sw = [];
       sw.push(bbox[1]);
-      sw.push(bbox[0]);
+      sw.push(bbox
+        [0]);
       let ne = [];
       ne.push(bbox[3]);
       ne.push(bbox[2]);
@@ -543,7 +631,7 @@ export class NoiseCompComponent implements OnInit {
   }
 
   update_runs(){
-    this.getMapsFromDB(1);
+    this.getNewGeoJSONsFromDB(1);
   }
 
   closeNewMapModal(){
@@ -640,10 +728,21 @@ export class NoiseCompComponent implements OnInit {
     let name = "noise_computation_"+sel.value+"_"+dt.getTime();
     console.log("upload_geojson::: name="+name);
     this.putGeoJSONService.putGeoJSON(geojson,name,this.city).subscribe(
-          res => {alert('geojson '+name+' added to storage.'); console.log("putGeoJSONService: SUCESS::: res="+JSON.stringify(res))}, 
+          res => {
+            document.getElementById('nameNGJ').innerHTML = name;
+            document.getElementById('newNewGeoJSONModal').style.display = "block";
+            /*
+            alert("\<html\>\<body\>\<h1\>this is alert heading\</h1\>\</html\>\</body\>");
+                  alert("geojson "+name+" added to storage.\n"+
+                        "<button  id='process_geojson_btn' (click)='process_geojson();'>Process GEOJSON</button>"
+                       ); 
+                  console.log("putGeoJSONService: SUCESS::: res="+JSON.stringify(res))
+                  */
+                 }, 
           err => {alert('ERROR!!!\ngeojson '+name+' NOT added to storage.');console.log("putGeoJSONService: ERROR::: err="+JSON.stringify(err));}
     );
   }
+  
   clear_newmap(){
     if ( NoiseCompComponent.newSquareLayer != null ){
       NoiseCompComponent.newmap.removeLayer(NoiseCompComponent.newSquareLayer);
@@ -652,4 +751,14 @@ export class NoiseCompComponent implements OnInit {
     let ele:HTMLInputElement = document.getElementById("newMapName") as HTMLInputElement;
     ele.value ="";
   }
+
+  process_newgeojson(){
+    let filename = document.getElementById('nameNGJ').innerHTML;
+    console.log("process_newgeojson::: filename="+filename);
+    console.log("process_newgeojson::: should call to end point");
+  }
+
+  closenewNewGeoJSONModal(){
+    document.getElementById("newNewGeoJSONModal").style.display = "none";
+  }
 }
diff --git a/src/app/pages/tecnalia-module/services/get-noisecomputation.service.ts b/src/app/pages/tecnalia-module/services/get-noisecomputation.service.ts
index 0db1710cba4b2f55149a7b8a758214264de61e31..f0b542c343891cba4e3636aa4172fba5780842af 100644
--- a/src/app/pages/tecnalia-module/services/get-noisecomputation.service.ts
+++ b/src/app/pages/tecnalia-module/services/get-noisecomputation.service.ts
@@ -20,6 +20,10 @@ export class GetNoiseComputationService{
     return this.http.get<any>(`${this.apiURL}/webresources/getData/getMaps`);
   }
 
+  getNewGeoJSONs(): Observable<any> {
+    return this.http.get<any>(`${this.apiURL}/webresources/getData/getNewGeoJSONs`);
+  }
+
   getTraffics(): Observable<any> {
     return this.http.get<any>(`${this.apiURL}/webresources/getData/getTraffics`);
   }
@@ -44,6 +48,7 @@ export class GetNoiseComputationService{
     let content = JSON.stringify(input);
     return this.http.put<any>(`${this.apiURL}/webresources/putCommands/createModel`,content);
   }
+  
   eraseModel(input:any): Observable<any> {
     let content = JSON.stringify(input);
     return this.http.put<any>(`${this.apiURL}/webresources/putCommands/eraseModel`,content);