Statistics
| Revision:

gvsig-raster / org.gvsig.raster / branches / org.gvsig.raster.2.4 / org.gvsig.raster / org.gvsig.raster.app / org.gvsig.raster.app.mainplugin / src / main / java / org / gvsig / raster / app / mainplugin / AddTestRasterLayerExtension.java @ 8685

History | View | Annotate | Download (47.4 KB)

1
package org.gvsig.raster.app.mainplugin;
2

    
3
import java.io.File;
4
import java.net.MalformedURLException;
5
import java.net.URL;
6
import java.util.ArrayList;
7
import java.util.Iterator;
8
import java.util.List;
9

    
10
import org.slf4j.Logger;
11
import org.slf4j.LoggerFactory;
12

    
13
import org.gvsig.andami.IconThemeHelper;
14
import org.gvsig.andami.Launcher;
15
import org.gvsig.andami.plugins.Extension;
16
import org.gvsig.app.ApplicationLocator;
17
import org.gvsig.app.ApplicationManager;
18
import org.gvsig.app.project.documents.view.ViewDocument;
19
import org.gvsig.app.project.documents.view.gui.IView;
20
import org.gvsig.fmap.crs.CRSFactory;
21
import org.gvsig.fmap.dal.DALLocator;
22
import org.gvsig.fmap.dal.DataManager;
23
import org.gvsig.fmap.dal.DataParameters;
24
import org.gvsig.fmap.dal.DataServerExplorer;
25
import org.gvsig.fmap.dal.DataServerExplorerParameters;
26
import org.gvsig.fmap.dal.DataStore;
27
import org.gvsig.fmap.dal.DataStoreProviderFactory;
28
import org.gvsig.fmap.dal.exception.DataException;
29
import org.gvsig.fmap.dal.exception.InitializeException;
30
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
31
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
32
import org.gvsig.fmap.dal.raster.RasterStoreProviderFactory;
33
import org.gvsig.fmap.dal.raster.api.NewRasterStoreParameters;
34
import org.gvsig.fmap.dal.raster.api.RasterStore;
35
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorer;
36
import org.gvsig.fmap.dal.spi.DALSPILocator;
37
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
38
import org.gvsig.fmap.geom.exception.CreateEnvelopeException;
39
import org.gvsig.fmap.mapcontext.MapContext;
40
import org.gvsig.fmap.mapcontext.MapContextLocator;
41
import org.gvsig.fmap.mapcontext.MapContextManager;
42
import org.gvsig.fmap.mapcontext.layers.FLayer;
43
import org.gvsig.fmap.mapcontrol.MapControl;
44
import org.gvsig.raster.lib.buffer.api.Buffer;
45
import org.gvsig.raster.lib.buffer.api.exceptions.BufferException;
46
import org.gvsig.tools.dispose.DisposeUtils;
47
import org.gvsig.tools.dynobject.DynObject;
48
import org.gvsig.tools.dynobject.exception.DynFieldNotFoundException;
49
import org.gvsig.tools.locator.LocatorException;
50

    
51
/**
52
 * Class for test purpose only. It serves to load a test layer in the active View.
53
 * @author fdiaz
54
 *
55
 */
56
public class AddTestRasterLayerExtension extends Extension {
57

    
58
    private static final Logger logger = LoggerFactory.getLogger(AddTestRasterLayerExtension.class);
59

    
60
    @Override
61
    public void initialize() {
62
        IconThemeHelper.registerIcon("action", "view-test-layer-add", this);
63
    }
64

    
65
    @Override
66
    public void execute(String actionCommand) {
67
        ApplicationManager application = ApplicationLocator.getManager();
68

    
69
        IView view = (IView) application.getActiveComponent(ViewDocument.class);
70
        if (view == null) {
71
            return;
72
        }
73
        ViewDocument document = view.getViewDocument();
74

    
75
        MapControl mapControl = view.getMapControl();
76
        MapContext mapContext = mapControl.getMapContext();
77

    
78
        final MapContextManager mapContextManager = MapContextLocator.getMapContextManager();
79
        FLayer layer = null;
80
        DataStore dataStore = null;
81
        try {
82
            ////////// FILE
83
            /*
84
             dataStore = openFileCached(new
85
             File("/home/paco/data/cartography/raster/ecw/valencia_1980_tif.tif"));
86
            // dataStore = openFileCached(new
87
            // File("/home/paco/data/Testdata/raster/JPG/relieve_andalucia.png"));
88
              String layerName = dataStore.getName();
89
              layer = mapContextManager.createLayer(layerName, dataStore);
90

91
              mapContext.getLayers().add(layer);
92
*/
93
            ///////////// GoogleMaps
94
/*
95
            dataStore = openGoogleMaps("roadmap");
96
//             dataStore = openGoogleMaps("hybrid");
97
             String layerName = dataStore.getName();
98
             layer = mapContextManager.createLayer(layerName, dataStore);
99

100
             mapContext.getLayers().add(layer);
101
*/
102
             ///////////// WMS
103

    
104
            dataStore = openWMSCatastro();
105
            String layerName = dataStore.getName();
106
            layer = mapContextManager.createLayer(layerName, dataStore);
107
            mapContext.getLayers().add(layer);
108

    
109
            ///////////// OSM
110

    
111
            /*
112
            Stamen_Watercolor=Stamen Watercolor*http\://tile.stamen.com/watercolor*17*jpg
113
            Open_Cycle_Map=Open Cycle Map*http\://tile.opencyclemap.org/cycle/*16*png
114
            Stamen_Terrain=Stamen Terrain*http\://tile.stamen.com/terrain*17*jpg
115
            Stamen_Toner=Stamen Toner*http\://tile.stamen.com/toner*17*png
116
            Mapnik=Mapnik*http\://tile.openstreetmap.org/*18*png
117
            */
118

    
119
             /*
120
            List<MyOSMServer> servers = new ArrayList<MyOSMServer>();
121
            try {
122
                servers.add(new MyOSMServer("Stamen Watercolor",new URL("http://tile.stamen.com/watercolor"),17,"jpg"));// fixed
123
                servers.add(new MyOSMServer("Open Cycle Map",new URL("http://tile.opencyclemap.org/cycle"),22,"png"));
124
                servers.add(new MyOSMServer("Stamen Terrain",new URL("http://tile.stamen.com/terrain"),17,"png"));// fixed
125
                servers.add(new MyOSMServer("Stamen Toner",new URL("http://tile.stamen.com/toner"),20,"png"));// fixed
126
                servers.add(new MyOSMServer("Mapnik",new URL("http://tile.openstreetmap.org"),19,"png"));// fixed
127
            } catch (MalformedURLException e){
128
                logger.warn("Can't create URL.", e);
129
            }
130

131
            for (Iterator iterator = servers.iterator(); iterator.hasNext();) {
132
                MyOSMServer MyOSMServer = (MyOSMServer) iterator.next();
133
                dataStore = openOSM(MyOSMServer);
134
                if (dataStore == null) {
135
                    continue;
136
                }
137
                String layerName = dataStore.getName();
138
                layer = mapContextManager.createLayer(layerName, dataStore);
139

140
                mapContext.getLayers().add(layer);
141
            }
142

143
            */
144

    
145

    
146
            ///////////// WMTS
147

    
148
            /*
149
            dataStore = openWMTSPnoa();
150
            String layerName = dataStore.getName();
151
            layer = mapContextManager.createLayer(layerName, dataStore);
152
            mapContext.getLayers().add(layer);
153
            */
154

    
155

    
156
            ///////////// WCS
157

    
158
//            for (int i = 0; i < 4; i++) {
159
//                logger.info("Abriendo capa: " + i);
160
//                dataStore = openTestWCS(i);
161
//                if (dataStore == null) {
162
//                    continue;
163
//                }
164
//                String layerName = dataStore.getName();
165
//                layer = mapContextManager.createLayer(layerName, dataStore);
166
//                mapContext.getLayers().add(layer);
167
//            }
168

    
169

    
170
            ////////////// MULTIFILE
171
/*
172
            dataStore = openMultifile();
173
            String layerName = dataStore.getName();
174
            layer = mapContextManager.createLayer(layerName, dataStore);
175
            RasterLayer rasterLayer = (RasterLayer)layer;
176
            RasterLegendManager rasterLegendManager = RasterLegendLocator.getRasterLegendManager();
177
//            ColorInterpretation colorInterpretation = rasterLegendManager.createColorInterpretation(ColorInterpretation.RGB);
178
            ColorInterpretation colorInterpretation =
179
                rasterLegendManager.createColorInterpretation(new String[] {
180
                    ColorInterpretation.RED_BAND,
181
                    ColorInterpretation.GREEN_BAND,
182
                    ColorInterpretation.BLUE_BAND,
183
                    ColorInterpretation.ALPHA_BAND });
184
//                    ColorInterpretation.UNDEFINED_BAND,
185
//                    ColorInterpretation.UNDEFINED_BAND,
186
//                    ColorInterpretation.UNDEFINED_BAND });
187
//                    ColorInterpretation.ALPHA_BAND,
188

189
            RasterLegend legend = rasterLegendManager.createLegend(colorInterpretation);
190
            rasterLayer.setLegend(legend);
191
            mapContext.getLayers().add(rasterLayer);
192
 */
193

    
194

    
195
            mapContext.callLegendChanged();
196
            document.setModified(true);
197
        } catch (Exception e) {
198
            logger.warn("Cant load test layer", e);
199
        } finally {
200
//            if (dataStore!=null){
201
//                DisposeUtils.dispose(dataStore);
202
//                dataStore = null;
203
//            }
204
            if (layer!=null){
205
                DisposeUtils.dispose(layer);
206
                layer = null;
207
            }
208
        }
209
    }
210

    
211
    @Override
212
    public boolean isEnabled() {
213
        return true;
214
    }
215

    
216
    @Override
217
    public boolean isVisible() {
218
        ApplicationManager application = ApplicationLocator.getManager();
219

    
220
        return application.getActiveComponent(ViewDocument.class) != null;
221
    }
222

    
223
    /**
224
     * TO TEST ONLY
225
     *
226
     * @return
227
     */
228
    private RasterStore openTestWCS(int index) {
229
        DataManagerProviderServices manager = DALSPILocator.getDataManagerProviderServices();
230
        DataServerExplorerParameters parameters;
231
        RasterStore store = null;
232
        DataParameters providerParams = null;
233
        try {
234
            parameters = manager.createServerExplorerParameters("WCSRasterServerExplorer");
235
//            parameters.setDynValue("service", new URL("http://idechg.chguadalquivir.es/inspire/wcs"));
236

    
237
            parameters.setDynValue("service", new URL("http://inspire.cop.gva.es/mapserver/wcs"));
238
//            parameters.setDynValue("service", new URL("http://geoservicios.cantabria.es/inspire/services/NDVI/MapServer/WCSServer?service=WCS"));
239
//            parameters.setDynValue("service", new URL("http://www.juntadeandalucia.es/medioambiente/mapwms/REDIAM_WCS_modelos_meteorologicos_prealertas"));
240
//            parameters.setDynValue("service", new URL("http://www.idecyl.jcyl.es/IGCyL/services/MedioFisico/MDT/MapServer/WCSServer?request=GetCapabilities&service=WCS"));
241
            DataServerExplorer serverExplorer =
242
                (DataServerExplorer) manager.openServerExplorer("WCSRasterServerExplorer", parameters);
243

    
244
            @SuppressWarnings("unchecked")
245
            List<DataParameters> list = serverExplorer.list();
246
            try{
247
                providerParams = list.get(index);
248
            } catch (IndexOutOfBoundsException e){
249
                logger.info("**** index out of bounds *****", e);
250
                return null;
251
            }
252
            store = (RasterStore) manager.openStore("WCSRaster", providerParams);
253
        } catch (ValidateDataParametersException | DynFieldNotFoundException | DataException | MalformedURLException e) {
254
            logger.info("**** error opening store *****", e);
255
        }
256
        if (store != null) {
257
            logger.info("**** ??????? O.K !!!!!!! *****");
258
        } else {
259
            logger.info("**** K.O ;_( *****");
260
        }
261

    
262

    
263
         //Prueba para cacheado de tiles tanto en memoria como en disco
264

    
265
         RasterStoreProviderFactory tileCacheProviderFactory = (RasterStoreProviderFactory)manager.getStoreProviderFactory("TileCache");
266
         // Prueba para cacheado de tiles solo en memoria
267
         //   RasterStoreProviderFactory tileCacheProviderFactory = (RasterStoreProviderFactory)manager.getStoreProviderFactory("MemoryTileCache");
268
         DynObject tileParameters = tileCacheProviderFactory.createParameters();
269

    
270
         // FIXME: Si la prueba es para cacheado solo en memoria es innecesaria la generaci?n de la carpeta, se puede comentarizar
271

    
272
        //FIXME: ?SOBRA?
273
//        if (tileParameters.getDynClass().getDynField("name") != null) {
274
//            tileParameters.setDynValue("name", store.getName());
275
//        }
276

    
277
        File rootFolder = new File(Launcher.getAppHomeDir() + File.separator + "gvsig_rcache");
278

    
279
        if (tileParameters.getDynClass().getDynField("rootFolder") != null) {
280
            tileParameters.setDynValue("rootFolder", rootFolder);
281
        }
282
        // Prueba para que la cach? utilice una carpeta alternativa
283
//        if (tileParameters.getDynClass().getDynField("folder") != null) {
284
//            tileParameters.setDynValue("folder", new File("/home/paco/tmp/WMS_catastro_cache"));
285
//        }
286

    
287
        try {
288
            // Prueba para cacheado de tiles tanto en memoria como en disco
289
            store.useCache("TileCache", tileParameters);
290
            // Prueba para cacheado de tiles solo en memoria
291
            // store.useCache("MemoryTileCache", tileParameters);
292
        } catch (DataException e) {
293
            logger.warn("Can't cache the layer.", e);
294
        }
295

    
296
        return store;
297

    
298
    }
299

    
300

    
301
    /**
302
     * TO TEST ONLY
303
     *
304
     * @return
305
     */
306
    private RasterStore openWMTSPnoa() {
307
        DataManagerProviderServices manager = DALSPILocator.getDataManagerProviderServices();
308
        DataServerExplorerParameters parameters;
309
        RasterStore store = null;
310
        DataParameters providerParams = null;
311
        try {
312
            parameters = manager.createServerExplorerParameters("WMTSRasterServerExplorer");
313

    
314
            parameters.setDynValue("service", new URL("http://www.ign.es/wmts/pnoa-ma")); //PNOA
315
//            parameters.setDynValue("service", new URL("http://v2.suite.opengeo.org/geoserver/gwc/service/wmts")); //opengeo
316

    
317
            DataServerExplorer serverExplorer =
318
                (DataServerExplorer) manager.openServerExplorer("WMTSRasterServerExplorer", parameters);
319

    
320

    
321

    
322
//            List<String> formats = serverExplorer.getFormats();
323

    
324
            @SuppressWarnings("unchecked")
325
            List<DataParameters> list = serverExplorer.list();
326
            providerParams = list.get(0); //PNOA
327
//            providerParams = list.get(1); //opengeo
328
//            providerParams.setDynValue("transparency", false);
329
            store = (RasterStore) manager.openStore("WMTSRaster", providerParams);
330
//            for (Iterator iterator = list.iterator(); iterator.hasNext();) {
331
//                try {
332
//                    providerParams = (DataParameters) iterator.next();
333
//                    providerParams.setDynValue("transparency", true);
334
//                    store = (RasterStore) manager.openStore("WMS", providerParams);
335
//                    break;
336
//                } catch (Exception e) {
337
//                    continue;
338
//                }
339
//            }
340
//            if(store==null){
341
//                throw new IllegalArgumentException("Can't open any store from this server.'");
342
//            }
343
        } catch (ValidateDataParametersException | DynFieldNotFoundException | DataException | MalformedURLException e) {
344
            logger.info("**** error opening store *****", e);
345
        }
346
        if (store != null) {
347
            logger.info("**** ??????? O.K !!!!!!! *****");
348
        } else {
349
            logger.info("**** K.O ;_( *****");
350
        }
351

    
352
         //Prueba para cacheado de tiles tanto en memoria como en disco
353
         RasterStoreProviderFactory tileCacheProviderFactory = (RasterStoreProviderFactory)manager.getStoreProviderFactory("TileCache");
354
         // Prueba para cacheado de tiles solo en memoria
355
         //   RasterStoreProviderFactory tileCacheProviderFactory = (RasterStoreProviderFactory)manager.getStoreProviderFactory("MemoryTileCache");
356
         DynObject tileParameters = tileCacheProviderFactory.createParameters();
357

    
358
         // FIXME: Si la prueba es para cacheado solo en memoria es innecesaria la generaci?n de la carpeta, se puede comentarizar
359

    
360
        //FIXME: ?SOBRA?
361
//        if (tileParameters.getDynClass().getDynField("name") != null) {
362
//            tileParameters.setDynValue("name", store.getName());
363
//        }
364

    
365
        File rootFolder = new File(Launcher.getAppHomeDir() + File.separator + "gvsig_rcache");
366

    
367
        if (tileParameters.getDynClass().getDynField("rootFolder") != null) {
368
            tileParameters.setDynValue("rootFolder", rootFolder);
369
        }
370
        // Prueba para que la cach? utilice una carpeta alternativa
371
//        if (tileParameters.getDynClass().getDynField("folder") != null) {
372
//            tileParameters.setDynValue("folder", new File("/home/paco/tmp/WMS_catastro_cache"));
373
//        }
374

    
375
        try {
376
            // Prueba para cacheado de tiles tanto en memoria como en disco
377
            store.useCache("TileCache", tileParameters);
378
            // Prueba para cacheado de tiles solo en memoria
379
            // store.useCache("MemoryTileCache", tileParameters);
380
        } catch (DataException e) {
381
            logger.warn("Can't cache the layer.", e);
382
        }
383

    
384
        return store;
385

    
386
    }
387

    
388

    
389
    /**
390
     * TO TEST ONLY
391
     *
392
     * @return
393
     */
394
    private RasterStore openWMSCatastro() {
395
        DataManagerProviderServices manager = DALSPILocator.getDataManagerProviderServices();
396
        DataServerExplorerParameters parameters;
397
        RasterStore store = null;
398
        DataParameters providerParams = null;
399
        try {
400
            parameters = manager.createServerExplorerParameters("WMS");
401
            parameters.setDynValue("service", new URL("http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx"));
402
            parameters.setDynValue("override_capabilities", false);
403

    
404
//            parameters.setDynValue("service", new URL("http://terramapas.icv.gva.es/mapa_topografico_base"));
405
//            parameters.setDynValue("service", new URL("http://atlas.gc.ca/cgi-bin/atlaswms_en"));
406
            DataServerExplorer serverExplorer =
407
                (DataServerExplorer) manager.openServerExplorer("WMS", parameters);
408

    
409
//            List<String> formats = serverExplorer.getFormats();
410

    
411
            @SuppressWarnings("unchecked")
412
            List<DataParameters> list = serverExplorer.list();
413
            providerParams = list.get(1);
414
            providerParams.setDynValue("transparency", false);
415
            providerParams.setDynValue("override_capabilities", false);
416
            store = (RasterStore) manager.openStore("WMS", providerParams);
417
//            for (Iterator iterator = list.iterator(); iterator.hasNext();) {
418
//                try {
419
//                    providerParams = (DataParameters) iterator.next();
420
//                    providerParams.setDynValue("transparency", true);
421
//                    store = (RasterStore) manager.openStore("WMS", providerParams);
422
//                    break;
423
//                } catch (Exception e) {
424
//                    continue;
425
//                }
426
//            }
427
//            if(store==null){
428
//                throw new IllegalArgumentException("Can't open any store from this server.'");
429
//            }
430
        } catch (ValidateDataParametersException | DynFieldNotFoundException | DataException | MalformedURLException e) {
431
            logger.info("**** error opening store *****", e);
432
        }
433
        if (store != null) {
434
            logger.info("**** ??????? O.K !!!!!!! *****");
435
        } else {
436
            logger.info("**** K.O ;_( *****");
437
        }
438

    
439
         //Prueba para cacheado de tiles tanto en memoria como en disco
440

    
441
         RasterStoreProviderFactory tileCacheProviderFactory = (RasterStoreProviderFactory)manager.getStoreProviderFactory("TileCache");
442
         // Prueba para cacheado de tiles solo en memoria
443
         //   RasterStoreProviderFactory tileCacheProviderFactory = (RasterStoreProviderFactory)manager.getStoreProviderFactory("MemoryTileCache");
444
         DynObject tileParameters = tileCacheProviderFactory.createParameters();
445

    
446
         // FIXME: Si la prueba es para cacheado solo en memoria es innecesaria la generaci?n de la carpeta, se puede comentarizar
447

    
448
        //FIXME: ?SOBRA?
449
//        if (tileParameters.getDynClass().getDynField("name") != null) {
450
//            tileParameters.setDynValue("name", store.getName());
451
//        }
452

    
453
        File rootFolder = new File(Launcher.getAppHomeDir() + File.separator + "gvsig_rcache");
454

    
455
        if (tileParameters.getDynClass().getDynField("rootFolder") != null) {
456
            tileParameters.setDynValue("rootFolder", rootFolder);
457
        }
458
        // Prueba para que la cach? utilice una carpeta alternativa
459
//        if (tileParameters.getDynClass().getDynField("folder") != null) {
460
//            tileParameters.setDynValue("folder", new File("/home/paco/tmp/WMS_catastro_cache"));
461
//        }
462

    
463
        try {
464
            // Prueba para cacheado de tiles tanto en memoria como en disco
465
            store.useCache("TileCache", tileParameters);
466
            // Prueba para cacheado de tiles solo en memoria
467
//             store.useCache("MemoryTileCache", tileParameters);
468
        } catch (DataException e) {
469
            logger.warn("Can't cache the layer.", e);
470
        }
471
        return store;
472

    
473
    }
474

    
475

    
476
    /**
477
     * TO TEST ONLY
478
     *
479
     * @return
480
     */
481
    private RasterStore openGoogleMaps(String mapType) {
482
        DataManagerProviderServices manager = DALSPILocator.getDataManagerProviderServices();
483
        DataStoreProviderFactory providerFactory = manager.getStoreProviderFactory("GoogleMapsRaster");
484
        DynObject params = providerFactory.createParameters();
485

    
486
        if (params.getDynClass().getDynField("mapType") != null) {
487
            params.setDynValue("mapType", mapType);
488
        }
489

    
490
        if (params.getDynClass().getDynField("hasApiKey") != null) {
491
            params.setDynValue("hasApiKey", true);
492
        }
493

    
494
        if (params.getDynClass().getDynField("crs") != null) {
495
            params.setDynValue("crs", CRSFactory.getCRS("EPSG:3857"));
496
        }
497

    
498
        //FIXME:
499

    
500
        if (params.getDynClass().getDynField("apiKey") != null) {
501
            params.setDynValue("apiKey", "AIzaSyANaBO8KAMiwLosno8ue84efcTNZeqWjIw");
502
        }
503
        if (params.getDynClass().getDynField("language") != null) {
504
            params.setDynValue("language", "es");
505
        }
506

    
507
//        if (params.getDynClass().getDynField("region") != null) {
508
//            params.setDynValue("region", "");
509
//        }
510

    
511
        if (params.getDynClass().getDynField("format") != null) {
512
            params.setDynValue("format", "png32");
513
        }
514

    
515
        RasterStore store = null;
516
        try {
517
            store = (RasterStore) manager.openStore("GoogleMapsRaster", params);
518
        } catch (ValidateDataParametersException | InitializeException | ProviderNotRegisteredException e) {
519
            logger.info("**** error opening store *****", e);
520
        }
521
        if (store != null) {
522
            logger.info("**** ??????? O.K !!!!!!! *****");
523
        } else {
524
            logger.info("**** K.O ;_( *****");
525
        }
526

    
527
        //Prueba para cacheado de tiles tanto en memoria como en disco
528
        RasterStoreProviderFactory tileCacheProviderFactory = (RasterStoreProviderFactory) manager.getStoreProviderFactory("TileCache");
529
        // Prueba para cacheado de tiles solo en memoria
530
//        RasterStoreProviderFactory tileCacheProviderFactory = (RasterStoreProviderFactory) manager.getStoreProviderFactory("MemoryTileCache");
531
      DynObject tileParameters = tileCacheProviderFactory.createParameters();
532

    
533
      // FIXME: Si la prueba es para cacheado solo en memoria es innecesaria la generaci?n de la carpeta, se puede comentarizar
534

    
535
      // FIXME: Ver qu? datos ser?an los adecuados para generar una carpeta
536
      // ?nica para la cach?
537

    
538
      File rootFolder = new File(Launcher.getAppHomeDir() + File.separator + "gvsig_rcache");
539

    
540
      if (tileParameters.getDynClass().getDynField("rootFolder") != null) {
541
          tileParameters.setDynValue("rootFolder", rootFolder);
542
      }
543

    
544

    
545
      try {
546
          //Prueba para cacheado de tiles tanto en memoria como en disco
547
          store.useCache("TileCache", tileParameters);
548
          // Prueba para cacheado de tiles solo en memoria
549
//          store.useCache("MemoryTileCache", tileParameters);
550
      } catch (DataException e) {
551
          logger.warn("Can't cache the layer.", e);
552
      }
553

    
554
        return store;
555

    
556
    }
557

    
558
    /**
559
     * TO TEST ONLY
560
     *
561
     * @return
562
     */
563
    private RasterStore openOSM(MyOSMServer myOSMServer) {
564
        DataManagerProviderServices manager = DALSPILocator.getDataManagerProviderServices();
565
        DataStoreProviderFactory providerFactory = manager.getStoreProviderFactory("OSMRaster");
566
        DynObject params = providerFactory.createParameters();
567

    
568
        if (params.getDynClass().getDynField("name") != null) {
569
            params.setDynValue("name", myOSMServer.name);
570
        }
571

    
572
        if (params.getDynClass().getDynField("service") != null) {
573
            params.setDynValue("service", myOSMServer.service);
574
        }
575

    
576
        if (params.getDynClass().getDynField("maxLevel") != null) {
577
            params.setDynValue("maxLevel", myOSMServer.maxLevel);
578
        }
579

    
580
        if (params.getDynClass().getDynField("suffix") != null) {
581
            params.setDynValue("suffix", myOSMServer.suffix);
582
        }
583

    
584
        if (params.getDynClass().getDynField("crs") != null) {
585
            params.setDynValue("crs", CRSFactory.getCRS("EPSG:3857"));
586
        }
587

    
588
        RasterStore store = null;
589

    
590
        try {
591
            store = (RasterStore) manager.openStore("OSMRaster", params);
592
        } catch (ValidateDataParametersException | InitializeException | ProviderNotRegisteredException e) {
593
            logger.info("**** error opening store *****", e);
594
        }
595
        if (store != null) {
596
            logger.info("**** ??????? O.K !!!!!!! *****");
597
        } else {
598
            logger.info("**** K.O ;_( *****");
599
        }
600

    
601
        //Prueba para cacheado de tiles tanto en memoria como en disco
602
        RasterStoreProviderFactory tileCacheProviderFactory = (RasterStoreProviderFactory) manager.getStoreProviderFactory("TileCache");
603
        // Prueba para cacheado de tiles solo en memoria
604
//        RasterStoreProviderFactory tileCacheProviderFactory = (RasterStoreProviderFactory) manager.getStoreProviderFactory("MemoryTileCache");
605
      DynObject tileParameters = tileCacheProviderFactory.createParameters();
606

    
607
      // FIXME: Si la prueba es para cacheado solo en memoria es innecesaria la generaci?n de la carpeta, se puede comentarizar
608

    
609
      // FIXME: Ver qu? datos ser?an los adecuados para generar una carpeta
610
      // ?nica para la cach?
611

    
612
      File rootFolder = new File(Launcher.getAppHomeDir() + File.separator + "gvsig_rcache");
613

    
614
      if (tileParameters.getDynClass().getDynField("rootFolder") != null) {
615
          tileParameters.setDynValue("rootFolder", rootFolder);
616
      }
617

    
618

    
619
      try {
620
          //Prueba para cacheado de tiles tanto en memoria como en disco
621
          store.useCache("TileCache", tileParameters);
622
          // Prueba para cacheado de tiles solo en memoria
623
//          store.useCache("MemoryTileCache", tileParameters);
624
      } catch (DataException e) {
625
          logger.warn("Can't cache the layer.", e);
626
      }
627

    
628
        return store;
629
    }
630

    
631

    
632
    /**
633
     * TO TEST ONLY
634
     *
635
     * @return
636
     */
637
    private RasterStore openWMS() {
638
        DataManagerProviderServices manager = DALSPILocator.getDataManagerProviderServices();
639
        DataStoreProviderFactory providerFactory = manager.getStoreProviderFactory("WMS");
640
        DynObject params = providerFactory.createParameters();
641

    
642
        if (params.getDynClass().getDynField("crs") != null) {
643
            params.setDynValue("crs", CRSFactory.getCRS("EPSG:23030"));
644
        }
645

    
646
        RasterStore store = null;
647
        try {
648
            store = (RasterStore) manager.openStore("WMS", params);
649
        } catch (ValidateDataParametersException | InitializeException | ProviderNotRegisteredException e) {
650
            logger.info("**** error opening store *****", e);
651
        }
652
        if (store != null) {
653
            logger.info("**** ??????? O.K !!!!!!! *****");
654
        } else {
655
            logger.info("**** K.O ;_( *****");
656
        }
657
        try {
658
            exportGTiff(store);
659
        } catch (ValidateDataParametersException | DataException | BufferException | LocatorException | CreateEnvelopeException e) {
660
            logger.info("failed to copy");
661
        }
662
        return store;
663

    
664
    }
665

    
666
    /**
667
     * TO TEST ONLY
668
     *
669
     * @return
670
     */
671
    private RasterStore openWCS() {
672
        DataManagerProviderServices manager = DALSPILocator.getDataManagerProviderServices();
673
        DataStoreProviderFactory providerFactory = manager.getStoreProviderFactory("WCS");
674
        DynObject params = providerFactory.createParameters();
675

    
676
        if (params.getDynClass().getDynField("url") != null) {
677
            params.setDynValue("url", "http://inspire.cop.gva.es/mapserver/wcs?");
678
        }
679
        if (params.getDynClass().getDynField("coverage") != null) {
680
            params.setDynValue("coverage", "MDT");
681
        }
682
        if (params.getDynClass().getDynField("crs") != null) {
683
            params.setDynValue("crs", CRSFactory.getCRS("EPSG:23030"));
684
        }
685

    
686
        RasterStore store = null;
687
        try {
688
            store = (RasterStore) manager.openStore("WCS", params);
689
        } catch (ValidateDataParametersException | InitializeException | ProviderNotRegisteredException e) {
690
            logger.info("**** error opening store *****", e);
691
        }
692
        if (store != null) {
693
            logger.info("**** ??????? O.K !!!!!!! *****");
694
        } else {
695
            logger.info("**** K.O ;_( *****");
696
        }
697
        try {
698
            exportGTiff(store);
699
        } catch (ValidateDataParametersException | DataException | BufferException | LocatorException | CreateEnvelopeException e) {
700
            logger.info("failed to copy");
701
        }
702
        return store;
703

    
704
    }
705

    
706
    /**
707
     * TO TEST ONLY
708
     *
709
     * @return
710
     */
711
    private RasterStore openPOSTGIS() {
712
        DataManagerProviderServices manager = DALSPILocator.getDataManagerProviderServices();
713
        DataStoreProviderFactory providerFactory = manager.getStoreProviderFactory("PostGISRaster");
714
        DynObject params = providerFactory.createParameters();
715
        // PG:host='gvsig-training.com' port='5432'
716
        // dbname='andalucia' user='curso' password='curso' schema='public'
717
        // table='tr_relieve_andalucia2'
718
        if (params.getDynClass().getDynField("host") != null) {
719
            params.setDynValue("host", "gvsig-training.com");
720
        }
721
        if (params.getDynClass().getDynField("dbname") != null) {
722
            params.setDynValue("dbname", "andalucia");
723
        }
724
        if (params.getDynClass().getDynField("table") != null) {
725
            params.setDynValue("table", "tr_relieve_andalucia2");
726
        }
727
        if (params.getDynClass().getDynField("schema") != null) {
728
            params.setDynValue("schema", "public");
729
        }
730
        if (params.getDynClass().getDynField("user") != null) {
731
            params.setDynValue("user", "curso");
732
        }
733
        if (params.getDynClass().getDynField("password") != null) {
734
            params.setDynValue("password", "curso");
735
        }
736
        if (params.getDynClass().getDynField("port") != null) {
737
            params.setDynValue("port", 5432);
738
        }
739
        if (params.getDynClass().getDynField("crs") != null) {
740
            params.setDynValue("crs", CRSFactory.getCRS("EPSG:23030"));
741
        }
742

    
743
        RasterStore store = null;
744
        try {
745
            store = (RasterStore) manager.openStore("PostGISRaster", params);
746
        } catch (ValidateDataParametersException | InitializeException | ProviderNotRegisteredException e) {
747
            logger.info("**** error opening store *****", e);
748
        }
749
        if (store != null) {
750
            logger.info("**** ??????? O.K !!!!!!! *****");
751
        } else {
752
            logger.info("**** K.O ;_( *****");
753
        }
754
        try {
755
            exportPNG(store);
756
        } catch (ValidateDataParametersException | DataException | BufferException | LocatorException | CreateEnvelopeException e) {
757
            logger.info("failed to copy");
758
        }
759
        return store;
760

    
761
    }
762

    
763
    /**
764
     * TO TEST ONLY
765
     *
766
     * @return
767
     */
768
    private RasterStore openTileCache() {
769
        DataManagerProviderServices manager = DALSPILocator.getDataManagerProviderServices();
770
        DataStoreProviderFactory providerFactory = manager.getStoreProviderFactory("TileCache");
771
        DynObject params = providerFactory.createParameters();
772

    
773
        if (params.getDynClass().getDynField("name") != null) {
774
            params.setDynValue("name", "TilecacheTEST");
775
        }
776
        if (params.getDynClass().getDynField("crs") != null) {
777
            params.setDynValue("crs", CRSFactory.getCRS("EPSG:25830"));
778
        }
779

    
780
        RasterStore store = null;
781
        try {
782
            store = (RasterStore) manager.openStore("TileCache", params);
783
        } catch (ValidateDataParametersException | InitializeException | ProviderNotRegisteredException e) {
784
            logger.info("**** error opening store *****", e);
785
        }
786
        if (store != null) {
787
            logger.info("**** ??????? O.K !!!!!!! *****");
788
        } else {
789
            logger.info("**** K.O ;_( *****");
790
        }
791
        // try {
792
        // exportGTiff(store);
793
        // } catch (ValidateDataParametersException | DataException
794
        // | BufferException e) {
795
        // logger.info("failed to copy");
796
        // }
797
        return store;
798
    }
799

    
800

    
801
    private RasterStore openMultifile() throws Exception {
802

    
803
//        File redFile = new File("/home/paco/tmp/costa1_R.tif");
804
//        File greenFile = new File("/home/paco/tmp/costa1_G.tif");
805
//        File blueFile = new File("/home/paco/tmp/costa1_B.tif");
806

    
807

    
808
//        File redFile = new File("/home/paco/tmp/Costa1-rojo.tif");
809
//        File greenFile = new File("/home/paco/tmp/Costa1-verde.tif");
810
//        File blueFile = new File("/home/paco/tmp/Costa1-azul.tif");
811

    
812
        DataManager manager = DALLocator.getDataManager();
813

    
814

    
815
        //RED
816

    
817
//        File redFile = new File("/home/paco/Descargas/fruit-2021816_640-rojo.tiff");
818
        File redFile = new File("/home/paco/Documentos/RED.tiff");
819
        DataServerExplorerParameters redExplorerParams = manager.createServerExplorerParameters(FilesystemServerExplorer.NAME);
820
        FilesystemServerExplorer redExplorer = (FilesystemServerExplorer) manager.openServerExplorer(FilesystemServerExplorer.NAME, redExplorerParams);
821
        String redType = redExplorer.getProviderName(redFile);
822

    
823
        DynObject redParams = manager.createStoreParameters(redType);
824

    
825
        if (redParams.getDynClass().getDynField("file") != null) {
826
            redParams.setDynValue("file", redFile);
827
        }
828
        if (redParams.getDynClass().getDynField("crs") != null) {
829
            redParams.setDynValue("crs", CRSFactory.getCRS("EPSG:25830"));
830
        }
831

    
832
        RasterStore redStore = null;
833

    
834

    
835
        //GREEN
836

    
837
//        File greenFile = new File("/home/paco/Descargas/fruit-2021816_640-verde.tiff");
838
        File greenFile = new File("/home/paco/Documentos/GREEN.tiff");
839

    
840
        DataServerExplorerParameters greenExplorerParams = manager.createServerExplorerParameters(FilesystemServerExplorer.NAME);
841
        FilesystemServerExplorer greenExplorer = (FilesystemServerExplorer) manager.openServerExplorer(FilesystemServerExplorer.NAME, greenExplorerParams);
842
        String greenType = greenExplorer.getProviderName(greenFile);
843

    
844
        DynObject greenParams = manager.createStoreParameters(greenType);
845

    
846
        if (greenParams.getDynClass().getDynField("file") != null) {
847
            greenParams.setDynValue("file", greenFile);
848
        }
849
        if (greenParams.getDynClass().getDynField("crs") != null) {
850
            greenParams.setDynValue("crs", CRSFactory.getCRS("EPSG:25830"));
851
        }
852

    
853
        RasterStore greenStore = null;
854

    
855
        //BLUE
856

    
857
//        File blueFile = new File("/home/paco/Descargas/fruit-2021816_640-azul.tiff");
858
        File blueFile = new File("/home/paco/Documentos/BLUE.tiff");
859

    
860
        DataServerExplorerParameters blueExplorerParams = manager.createServerExplorerParameters(FilesystemServerExplorer.NAME);
861
        FilesystemServerExplorer blueExplorer = (FilesystemServerExplorer) manager.openServerExplorer(FilesystemServerExplorer.NAME, blueExplorerParams);
862
        String blueType = blueExplorer.getProviderName(blueFile);
863

    
864
        DynObject blueParams = manager.createStoreParameters(blueType);
865

    
866
        if (blueParams.getDynClass().getDynField("file") != null) {
867
            blueParams.setDynValue("file", blueFile);
868
        }
869
        if (blueParams.getDynClass().getDynField("crs") != null) {
870
            blueParams.setDynValue("crs", CRSFactory.getCRS("EPSG:25830"));
871
        }
872

    
873
        RasterStore blueStore = null;
874

    
875
        //ALPHA
876

    
877
      File alphaFile = new File("/home/paco/Documentos/ALPHA.tiff");
878

    
879
      DataServerExplorerParameters alphaExplorerParams = manager.createServerExplorerParameters(FilesystemServerExplorer.NAME);
880
      FilesystemServerExplorer alphaExplorer = (FilesystemServerExplorer) manager.openServerExplorer(FilesystemServerExplorer.NAME, alphaExplorerParams);
881
      String alphaType = alphaExplorer.getProviderName(alphaFile);
882

    
883
      DynObject alphaParams = manager.createStoreParameters(alphaType);
884

    
885
      if (alphaParams.getDynClass().getDynField("file") != null) {
886
          alphaParams.setDynValue("file", alphaFile);
887
      }
888
      if (alphaParams.getDynClass().getDynField("crs") != null) {
889
          alphaParams.setDynValue("crs", CRSFactory.getCRS("EPSG:25830"));
890
      }
891

    
892
      RasterStore alphaStore = null;
893

    
894

    
895
        try {
896
            redStore = (RasterStore) manager.openStore(redType, redParams);
897
            greenStore = (RasterStore) manager.openStore(greenType, greenParams);
898
            blueStore = (RasterStore) manager.openStore(blueType, blueParams);
899
            alphaStore = (RasterStore) manager.openStore(alphaType, alphaParams);
900
        } catch (ValidateDataParametersException | InitializeException | ProviderNotRegisteredException e) {
901
            logger.info("**** error opening store *****", e);
902
        }
903
        List<Integer> bands = new ArrayList<Integer>();
904
        bands.add(0);
905
//        bands.add(1);
906

    
907
        redStore.addBands(greenStore, bands);
908
        redStore.addBands(blueStore, bands);
909
        redStore.addBands(alphaStore, bands);
910
        if (redStore != null) {
911
            logger.info("**** ??????? O.K !!!!!!! *****");
912
        } else {
913
            logger.info("**** K.O ;_( *****");
914
        }
915

    
916
        /*
917
        //Prueba para cacheado de tiles tanto en memoria como en disco
918
        RasterStoreProviderFactory tileCacheProviderFactory = (RasterStoreProviderFactory) manager.getStoreProviderFactory("TileCache");
919
        // Prueba para cacheado de tiles solo en memoria
920
//        RasterStoreProviderFactory tileCacheProviderFactory = (RasterStoreProviderFactory) manager.getStoreProviderFactory("MemoryTileCache");
921
      DynObject tileParameters = tileCacheProviderFactory.createParameters();
922

923
      File rootFolder = new File(Launcher.getAppHomeDir() + File.separator + "gvsig_rcache");
924

925
      if (tileParameters.getDynClass().getDynField("rootFolder") != null) {
926
          tileParameters.setDynValue("rootFolder", rootFolder);
927
      }
928

929

930
      try {
931
          //Prueba para cacheado de tiles tanto en memoria como en disco
932
          redStore.useCache("TileCache", tileParameters);
933
//          greenStore.useCache("TileCache", tileParameters);
934
          blueStore.useCache("TileCache", tileParameters);
935
          // Prueba para cacheado de tiles solo en memoria
936
//          redStore.useCache("MemoryTileCache", tileParameters);
937
      } catch (DataException e) {
938
          logger.warn("Can't cache the layer.", e);
939
      }
940

941
*/
942
        return redStore;
943
    }
944

    
945

    
946

    
947
    private RasterStore openFileCached(File file) throws Exception {
948
        DataManager manager = DALLocator.getDataManager();
949
        DataServerExplorerParameters explorerParams = manager.createServerExplorerParameters(FilesystemServerExplorer.NAME);
950
        FilesystemServerExplorer explorer = (FilesystemServerExplorer) manager.openServerExplorer(FilesystemServerExplorer.NAME, explorerParams);
951
        String type = explorer.getProviderName(file);
952

    
953

    
954
        DynObject params = manager.createStoreParameters(type);
955
//        DynObject params = manager.createStoreParameters("GTiff");
956
//        DynObject params = manager.createStoreParameters("PNG");
957

    
958
        if (params.getDynClass().getDynField("file") != null) {
959
            params.setDynValue("file", file);
960
        }
961
        if (params.getDynClass().getDynField("crs") != null) {
962
            params.setDynValue("crs", CRSFactory.getCRS("EPSG:25830"));
963
        }
964

    
965
        RasterStore store = null;
966
        try {
967
            store = (RasterStore) manager.openStore(type, params);
968
//            store = (RasterStore) manager.openStore("PNG", params);
969
        } catch (ValidateDataParametersException | InitializeException | ProviderNotRegisteredException e) {
970
            logger.info("**** error opening store *****", e);
971
        }
972
        if (store != null) {
973
            logger.info("**** ??????? O.K !!!!!!! *****");
974
        } else {
975
            logger.info("**** K.O ;_( *****");
976
        }
977

    
978
        DynObject tileParameters = manager.createStoreParameters("TileCache");
979

    
980
        File rootFolder = new File(Launcher.getAppHomeDir() + File.separator + "gvsig_rcache");
981

    
982
        if (tileParameters.getDynClass().getDynField("rootFolder") != null) {
983
            tileParameters.setDynValue("rootFolder", rootFolder);
984
        }
985

    
986
        try {
987
            store.useCache("TileCache", tileParameters);
988
        } catch (DataException e) {
989
            logger.warn("Can't cache the layer.", e);
990
        }
991

    
992
        return store;
993
    }
994

    
995
//    /**
996
//     * Converts an array of bytes to hexadecimal string
997
//     *
998
//     * @param data
999
//     * @return
1000
//     */
1001
//    private String convertToHex(byte[] data) {
1002
//        StringBuffer buf = new StringBuffer();
1003
//        for (int i = 0; i < data.length; i++) {
1004
//            int halfbyte = (data[i] >>> 4) & 0x0F;
1005
//            int two_halfs = 0;
1006
//            do {
1007
//                if ((0 <= halfbyte) && (halfbyte <= 9))
1008
//                    buf.append((char) ('0' + halfbyte));
1009
//                else
1010
//                    buf.append((char) ('a' + (halfbyte - 10)));
1011
//                halfbyte = data[i] & 0x0F;
1012
//            } while (two_halfs++ < 1);
1013
//        }
1014
//        return buf.toString();
1015
//    }
1016
//
1017
    /**
1018
     * TO TEST ONLY
1019
     * @throws CreateEnvelopeException
1020
     * @throws LocatorException
1021
     */
1022
    private void exportPNG(RasterStore store) throws InitializeException, ProviderNotRegisteredException,
1023
        ValidateDataParametersException, DataException, BufferException, LocatorException, CreateEnvelopeException {
1024
        String providerName = "PNG";
1025
        String extension = "png";
1026

    
1027
        DataManagerProviderServices manager = DALSPILocator.getDataManagerProviderServices();
1028
        DataServerExplorerParameters eparams = manager.createServerExplorerParameters("FilesystemExplorer");
1029
        int count = 0;
1030
        String path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile." + extension;
1031
        File destFile = new File(path);
1032
        while (destFile.exists()) {
1033
            count++;
1034
            path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile_" + count + "." + extension;
1035
            destFile = new File(path);
1036
        }
1037
        eparams.setDynValue("initialpath", path);
1038
        DataServerExplorer serverExplorer = manager.createServerExplorer(eparams);
1039

    
1040
        NewRasterStoreParameters params = (NewRasterStoreParameters) serverExplorer.getAddParameters(providerName);
1041
        params.setDynValue("file", destFile);
1042

    
1043
        params.setDynValue("worldfile", false);
1044
        params.setDynValue("zlevel", 1);
1045

    
1046
        Buffer buffer = store.getRasterSet().clip(store.getEnvelope());
1047
        params.setBuffer(buffer);
1048
        serverExplorer.add(providerName, params, true);
1049
    }
1050

    
1051
    /**
1052
     * TO TEST ONLY
1053
     * @throws CreateEnvelopeException
1054
     * @throws LocatorException
1055
     */
1056
    private void exportGTiff(RasterStore store) throws InitializeException, ProviderNotRegisteredException,
1057
        ValidateDataParametersException, DataException, BufferException, LocatorException, CreateEnvelopeException {
1058
        String providerName = "GTiff";
1059
        String extension = "tif";
1060

    
1061
        DataManagerProviderServices manager = DALSPILocator.getDataManagerProviderServices();
1062
        DataServerExplorerParameters eparams = manager.createServerExplorerParameters("FilesystemExplorer");
1063
        int count = 0;
1064
        String path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile." + extension;
1065
        File destFile = new File(path);
1066
        while (destFile.exists()) {
1067
            count++;
1068
            path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile_" + count + "." + extension;
1069
            destFile = new File(path);
1070
        }
1071
        eparams.setDynValue("initialpath", path);
1072
        DataServerExplorer serverExplorer = manager.createServerExplorer(eparams);
1073

    
1074
        NewRasterStoreParameters params = (NewRasterStoreParameters) serverExplorer.getAddParameters(providerName);
1075
        params.setDynValue("file", destFile);
1076

    
1077
        params.setDynValue("compress", "NONE");
1078
        params.setDynValue("tfw", false);
1079
        params.setDynValue("photometric", "RGB");
1080

    
1081
        Buffer buffer = store.getRasterSet().clip(store.getEnvelope());
1082
        params.setBuffer(buffer);
1083
        serverExplorer.add(providerName, params, true);
1084
    }
1085

    
1086
    /**
1087
     * TO TEST ONLY
1088
     * @throws CreateEnvelopeException
1089
     * @throws LocatorException
1090
     */
1091
    private void exportBMP(RasterStore store) throws InitializeException, ProviderNotRegisteredException,
1092
        ValidateDataParametersException, DataException, BufferException, LocatorException, CreateEnvelopeException {
1093
        String providerName = "BMP";
1094
        String extension = "bmp";
1095

    
1096
        DataManagerProviderServices manager = DALSPILocator.getDataManagerProviderServices();
1097
        DataServerExplorerParameters eparams = manager.createServerExplorerParameters("FilesystemExplorer");
1098
        int count = 0;
1099
        String path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile." + extension;
1100
        File destFile = new File(path);
1101
        while (destFile.exists()) {
1102
            count++;
1103
            path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile_" + count + "." + extension;
1104
            destFile = new File(path);
1105
        }
1106
        eparams.setDynValue("initialpath", path);
1107
        DataServerExplorer serverExplorer = manager.createServerExplorer(eparams);
1108

    
1109
        NewRasterStoreParameters params = (NewRasterStoreParameters) serverExplorer.getAddParameters(providerName);
1110
        params.setDynValue("file", destFile);
1111

    
1112
        params.setDynValue("worldfile", true);
1113

    
1114
        Buffer buffer = store.getRasterSet().clip(store.getEnvelope());
1115
        params.setBuffer(buffer);
1116
        serverExplorer.add(providerName, params, true);
1117
    }
1118

    
1119
    /**
1120
     * TO TEST ONLY
1121
     * @throws CreateEnvelopeException
1122
     * @throws LocatorException
1123
     */
1124
    private void exportNetCDF(RasterStore store) throws InitializeException, ProviderNotRegisteredException,
1125
        ValidateDataParametersException, DataException, BufferException, LocatorException, CreateEnvelopeException {
1126
        String providerName = "netCDF";
1127
        String extension = "nc";
1128

    
1129
        DataManagerProviderServices manager = DALSPILocator.getDataManagerProviderServices();
1130
        DataServerExplorerParameters eparams = manager.createServerExplorerParameters("FilesystemExplorer");
1131
        int count = 0;
1132
        String path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile." + extension;
1133
        File destFile = new File(path);
1134
        while (destFile.exists()) {
1135
            count++;
1136
            path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile_" + count + "." + extension;
1137
            destFile = new File(path);
1138
        }
1139
        eparams.setDynValue("initialpath", path);
1140
        DataServerExplorer serverExplorer = manager.createServerExplorer(eparams);
1141

    
1142
        NewRasterStoreParameters params = (NewRasterStoreParameters) serverExplorer.getAddParameters(providerName);
1143
        params.setDynValue("file", destFile);
1144
        // params.setDynValue("format", "NC4C");
1145
        // params.setDynValue("pixeltype", "DEFAULT");
1146
        params.setDynValue("chunking", false);
1147

    
1148
        Buffer buffer = store.getRasterSet().clip(store.getEnvelope());
1149
        params.setBuffer(buffer);
1150
        serverExplorer.add(providerName, params, true);
1151
    }
1152

    
1153
    private class MyOSMServer {
1154
        public String name;
1155
        public URL service;
1156
        public int maxLevel;
1157
        public String suffix;
1158

    
1159
        public MyOSMServer(String name, URL service, int maxLevel, String suffix) {
1160
            this.name = name;
1161
            this.service = service;
1162
            this.maxLevel = maxLevel;
1163
            this.suffix = suffix;
1164
        }
1165
    }
1166
}