private void runStatement(Map<Point, Set<Integer>> geoTags, Map<GeoTag, PointTag> tagMap){

            GeospatialData [] data = null;
            
            // get multi-data from DB:
            if (loader.loadingFeatures){
                data = db.getMultiHorizons(geoTags, loader.srdsSource.srdsSrcID);
            }
            else{
                ////// TO DO >>>> db.getMultiTraces_v3
            }
            
            if (data == null){
                System.err.println("Data array is null, nothing was returned from DB!!");
                return;
            }//if
            
            // loop through data array
            for (int i=0; i < data.length; i++){

                // increment db visit count:
                loader.incrementDbVisitCount();

                // [28/5/2012] Note: if knowing data coordinates in advance, then all returned data units are non-null:
                if (data[i] == null){
                    System.err.println("data [" + i + "] is null!!"); // shouldn't happen
                    loader.incrementEmptyUnitsCount();
                    continue;
                }
                
                // current associated tag:
                PointTag tag = tagMap.get(data[i].geoTag);
                
                // compute location of trace in texture (s,t):
                int s = tag.x - this.xLRef;
                int t = tag.y - this.yLRef;

                
                // upload texture buffer & FESVo:
                // ------------------------------
                
                // if loading features:
                if (loader.loadingFeatures){
                    if (loader.loadAtLowerResolution)
                        loader.uploadTextureBufferAtLowerResolution(s, t, lod, (Feature)data[i], tag.sourceID);
                    else
                        loader.uploadTextureBuffer(s, t, (Feature)data[i], tag.sourceID);
                    
                    FESVo.putHorizon((Feature)data[i], tag, lod);
                    
                    //[TEST]
//                    System.out.println(tag.sourceID + ", " + tag.x + ", " + tag.y + ", " + data[i].geoTag.x + ", " + data[i].geoTag.y);
        
                }
                // if loading a trace:
                else{
                    if (loader.loadAtLowerResolution)
                        loader.uploadTextureBufferAtLowerResolution(s, t, lod, (Trace)data[i]);
                    else
                        loader.uploadTextureBuffer(s, t, (Trace)data[i]);
                    
                    FESVo.putTrace((Trace)data[i], tag, lod);
                }
                
                   
            }
           
        }//runStatement