Statistics
| Revision:

gvsig-raster / org.gvsig.raster.georeferencing / trunk / org.gvsig.raster.georeferencing / org.gvsig.raster.georeferencing.app / org.gvsig.raster.georeferencing.app.georeferencingclient / src / main / java / org / gvsig / raster / georeferencing / app / georeferencingclient / Georeferencing.java @ 1712

History | View | Annotate | Download (20.2 KB)

1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.georeferencing.app.georeferencingclient;
23

    
24
import java.awt.geom.Rectangle2D;
25
import java.util.ArrayList;
26
import java.util.List;
27

    
28
import javax.swing.JPanel;
29

    
30
import org.gvsig.andami.PluginServices;
31
import org.gvsig.andami.ui.mdiManager.IWindow;
32
import org.gvsig.app.ApplicationLocator;
33
import org.gvsig.app.ApplicationManager;
34
import org.gvsig.app.project.documents.Document;
35
import org.gvsig.app.project.documents.view.ViewDocument;
36
import org.gvsig.app.project.documents.view.gui.IView;
37
import org.gvsig.fmap.dal.coverage.datastruct.GeoPoint;
38
import org.gvsig.fmap.dal.coverage.datastruct.GeoPointList;
39
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
40
import org.gvsig.fmap.geom.primitive.Envelope;
41
import org.gvsig.fmap.mapcontrol.MapControl;
42
import org.gvsig.i18n.Messages;
43
import org.gvsig.raster.georeferencing.app.georeferencingclient.gui.CheckBoxColumnEditor;
44
import org.gvsig.raster.georeferencing.app.georeferencingclient.gui.CheckBoxColumnRenderer;
45
import org.gvsig.raster.georeferencing.app.georeferencingclient.gui.GCPModel;
46
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.ApplicationControlsListener;
47
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.LauncherDialogListener;
48
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.ViewDialogListener;
49
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.ViewMapRequestManager;
50
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.ViewRasterRequestManager;
51
import org.gvsig.raster.georeferencing.framework.GeoreferencingFrameworkLocator;
52
import org.gvsig.raster.georeferencing.framework.GeoreferencingFrameworkManager;
53
import org.gvsig.raster.georeferencing.framework.LayoutEnvironment;
54
import org.gvsig.raster.georeferencing.swing.GeoreferencingLauncher;
55
import org.gvsig.raster.georeferencing.swing.GeoreferencingOptionsDataModel;
56
import org.gvsig.raster.georeferencing.swing.GeoreferencingSwingLibrary;
57
import org.gvsig.raster.georeferencing.swing.GeoreferencingSwingLocator;
58
import org.gvsig.raster.georeferencing.swing.GeoreferencingSwingManager;
59
import org.gvsig.raster.georeferencing.swing.control.GeorefControlPanel;
60
import org.gvsig.raster.georeferencing.swing.exception.InvalidRequestException;
61
import org.gvsig.raster.georeferencing.swing.impl.GeoreferencingSwingImplLibrary;
62
import org.gvsig.raster.georeferencing.swing.impl.tool.SelectPointTool;
63
import org.gvsig.raster.georeferencing.swing.view.GeoreferencingView;
64
import org.gvsig.raster.georeferencing.swing.view.IViewRequestManager;
65
import org.gvsig.raster.georeferencing.swing.view.SynchronizedViews;
66
import org.gvsig.raster.swing.RasterSwingLocator;
67
import org.gvsig.raster.swing.RasterSwingManager;
68
import org.gvsig.raster.swing.pagedtable.ModelLoader;
69
import org.gvsig.raster.swing.pagedtable.PagedTable;
70

    
71
/**
72
 * Clase principal para la georreferenciaci?n. Se encarga de la inicializaci?n
73
 * de la funcionalidad. Las acciones a realizar son:
74
 * <UL>
75
 * <LI>Lanzamiento del dialogo de inicializaci?n.</LI>
76
 * <LI>Carga de la capa raster a georreferenciar.</LI>
77
 * <LI>Creaci?n de las ventanas si no han sido creadas previamente.</LI>
78
 * <LI>Asignaci?n de tama?os y posiciones a las ventanas.</LI>
79
 * </UL>
80
 * 26/12/2007
81
 * @author Nacho Brodin (nachobrodin@gmail.com)
82
 */
83
public class Georeferencing  {
84
        public static final int               UNDEFINED                      = -1;
85
        //Algoritmo
86
        public static final int               POLYNOMIAL                     = 0;
87
        public static final int               AFFINE                         = 1;
88
        
89
        //Tipo de georreferenciacion
90
        public static final int               WITH_MAP                       = 0;
91
        public static final int               WITHOUT_MAP                    = 1;
92
        
93
        public static int                     DEFAULT_DEGREE                 = 3;
94
        public static int                     ZOOM_RATIO                     = 5;
95
        
96
        private GeoreferencingFrameworkManager 
97
                                              fManager                       = null;
98
        private GeoreferencingSwingManager    sManager                       = null;
99
        
100
        private RasterDataStore               storeToGeoref                  = null;
101
        private String                        selectedView                   = null;
102
                
103
        //Dialogos
104
        private GeoreferencingLauncher        launcher                       = null;
105
        private GeoreferencingView            viewRaster                     = null;
106
        private GeoreferencingView            viewMap                        = null;
107
        private GeoreferencingView            zoomMap                        = null;
108
        private GeoreferencingView            zoomRaster                     = null;
109
        
110
        private ViewRasterRequestManager      zoomRasterRequestManager       = null;  
111
        private ViewMapRequestManager         zoomMapRequestManager          = null;
112
                
113
        //Herramientas de selecci?n
114
        private SelectPointTool               viewRasterSelectPointTool      = null;
115
        private SelectPointTool               viewMapSelectPointTool         = null;
116
        private SelectPointTool               zoomRasterSelectPointTool      = null;
117
        private SelectPointTool               zoomMapSelectPointTool         = null;
118
        
119
        private GeorefControlPanel            georefControlPanel             = null;
120

    
121
        private PagedTable                    table                          = null;
122
        private ApplicationControlsListener   buttonsListener                = null;
123

    
124
        private MapControl                    mapCtrl                        = null;
125
        private GeoreferencingOptionsDataModel 
126
                                              dataModel                      = null;
127
        private GeoPointList                  geoPointList                   = null;
128
        private SynchronizedViews             syncViews                      = null;
129
        private ViewDialogListener            listener                       = null;
130
        private GeoreferencingProcessActions  processActions                 = null;
131
        
132
        //private LayersPointManager            layersPointManager             = null;
133
        class GeoPointListImpl extends ArrayList<GeoPoint> implements GeoPointList {
134
                private static final long serialVersionUID = 1L;
135
        }
136
                
137
        public void initialize() {
138
                fManager = GeoreferencingFrameworkLocator.getManager();
139
                sManager = GeoreferencingSwingLocator.getSwingManager();
140
                listener = new ViewDialogListener(this);
141
                processActions = new GeoreferencingProcessActions();
142
                //getLayerPointManager();        
143
                //getViewsManager();
144
                launcher();
145
        }
146
        
147
        /**
148
         * Launcher of the initial dialog
149
         */
150
        private void launcher() {
151
                ApplicationManager application = ApplicationLocator.getManager();
152
                List<Document> docs = application.getProjectManager().getCurrentProject().getDocuments();
153
                List<String> viewList = new ArrayList<String>();
154
                for (int i = 0; i < docs.size(); i++) {
155
                        Document doc = docs.get(i);
156
                        if(doc instanceof ViewDocument) {
157
                                viewList.add(doc.getName());
158
                        }
159
                }
160
                
161

    
162
                launcher = sManager.createWindowLauncher(viewList, DEFAULT_DEGREE);
163
                LauncherDialogListener listener = new LauncherDialogListener(this, launcher);
164
                launcher.setButtonsListener(listener);
165
                fManager.showWindow(launcher.getComponent(), 400, 420, Messages.getText("georeferencing"));
166
        }
167
        
168
        /**
169
         * Obtiene el gestor para capas de puntos de la aplicaci?n,
170
         * @return LayersPointManager
171
         */
172
        /*        if(layersPointManager == null)
173
                        layersPointManager = new LayersPointManager(this);
174
                return layersPointManager;
175
        }*/
176
        
177
        /**
178
         * Obtiene el gestor para las vistas de la aplicaci?n,
179
         * @return ViewsManager
180
         */
181
        /*public ViewsManager getViewsManager() {
182
                if(viewsManager == null)
183
                        viewsManager = new ViewsManager();
184
                return viewsManager;
185
        }*/
186
        
187
        public void setSelectedView(String selectedView) {
188
                this.selectedView = selectedView;
189
        }
190
        
191
        /**
192
         * Obtiene la lista de capas de la vista de gvSIG
193
         * @return
194
         */
195
        /*public FLayers getLayers() {
196
                MapControl mapControl = null;
197
                IWindow[] windowList = PluginServices.getMDIManager().getAllWindows();
198
                for (int i = 0; i < windowList.length; i++) {
199
                        if(windowList[i] instanceof IView) 
200
                                mapControl = ((IView)windowList[i]).getMapControl();
201
                }
202
                if(mapControl != null)
203
                        return mapControl.getMapContext().getLayers();
204
                return null;
205
        }*/
206
        
207
        private MapControl getMapCtrl() {
208
                if(mapCtrl == null) {
209
                        IWindow[] windowList = PluginServices.getMDIManager().getAllWindows();
210
                        for (int i = 0; i < windowList.length; i++) {
211
                                if(windowList[i] instanceof IView) {
212
                                        String name = ((IView)windowList[i]).getViewDocument().getName();
213
                                        if(name.equals(dataModel.getSelectedView())) {
214
                                                mapCtrl = ((IView)windowList[i]).getMapControl();
215
                                        }
216
                                }
217
                        }                        
218
                }
219
                return mapCtrl;
220
        }
221
        
222
        public void endLauncherDialog(GeoreferencingOptionsDataModel dataModel) {
223
                this.dataModel = dataModel;
224
                if(dataModel.getType() == Georeferencing.WITH_MAP)
225
                        initWindowsWithMap(dataModel);
226
                if(dataModel.getType() == Georeferencing.WITHOUT_MAP)
227
                        initWindowsWithoutMap(dataModel);
228
        }
229
        
230
        /**
231
         * Colocaci?n inicial de las ventanas del espacio de trabajo. Carga la configuraci?n
232
         * de ventanas con cartograf?a de referencia.
233
         */
234
        private void initWindowsWithoutMap(GeoreferencingOptionsDataModel dataModel) {
235
                RasterDataStore store = dataModel.getDataStore();
236
                
237
                getOptionsDataModel().setType(WITHOUT_MAP);
238
                                                 
239
                //Inicializaci?n de la ventana con la vista raster
240
                viewRaster = sManager.createView(true, false, true, listener);
241
                ViewRasterRequestManager viewRasterRequestManager = new ViewRasterRequestManager(viewRaster, store);
242
                viewRaster.setViewListener(listener);
243
                viewRaster.setRequestListener(viewRasterRequestManager);
244
                viewRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener);
245
                
246
                //Inicializaci?n de la ventana del zoom de la vista raster
247
                zoomRaster = sManager.createZoom(true, false);
248
                zoomRasterRequestManager = new ViewRasterRequestManager(zoomRaster, store);
249
                zoomRaster.setRequestListener(zoomRasterRequestManager);
250
                zoomRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener);
251
                
252
                PagedTable pt = getTable();
253
                
254
                //Creamos el layout
255
                
256
                LayoutEnvironment layoutEnv = fManager.createLayoutEnvironment();
257
                layoutEnv.setTable((JPanel)pt.getComponent());
258
                layoutEnv.setViewRasterToGeoref(viewRaster.getComponent());
259
                layoutEnv.setViewZoomRasterToGeoref(zoomRaster.getComponent());
260
                layoutEnv.setControlBar(getGeorefControlPanel().getComponent());
261
                
262
                fManager.createLayout(layoutEnv);
263
                GeoreferencingView[] v = new GeoreferencingView[]{null, viewRaster, null, zoomRaster};
264
                IViewRequestManager[] rm = new IViewRequestManager[]{null, viewRasterRequestManager, null, zoomRasterRequestManager};
265
                syncViews = sManager.createSyncViews(v, rm, getGeoPointList(), pt, listener);
266

    
267
//                
268
//                viewsManager.setViews(viewRaster, null, zoomRaster, null);
269
//                viewsManager.setRequestsManager(viewRasterRequestManager, null, zoomRasterRequestManager, null);
270
//                viewsManager.setTablePanel(table);
271
//                
272
                try {
273
                        viewRaster.setCursorSize(zoomRaster.getCanvasWidth() / ZOOM_RATIO, zoomRaster.getCanvasHeight() / ZOOM_RATIO);
274
                        viewRaster.setCursorPosition(viewRaster.getCanvasWidth() / 2, viewRaster.getCanvasHeight() / 2);
275
                        
276
                        //Inicializamos la vista de raster
277
                        viewRasterRequestManager.initRequest(dataModel.getDataStore().getExtent().toRectangle2D());
278
                                                
279
                        //Inicializamos el zoom de raster
280
                        Rectangle2D ext = viewRaster.getCursorAdjustedWorldCoordinates(zoomRaster.getCanvasWidth(), zoomRaster.getCanvasHeight());
281
                        zoomRasterRequestManager.initRequest(dataModel.getDataStore().getExtent().toRectangle2D());
282
                        zoomRasterRequestManager.request(ext);
283
                
284
                } catch (InvalidRequestException e1) {
285
                        GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e1);
286
                        fManager.closeAllWindows();
287
                }catch (Exception e1) {
288
                        GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e1);
289
                        fManager.closeAllWindows();
290
                }
291
        }
292
        
293
        public PagedTable getTable() {
294
                if(table == null) {
295
                        RasterSwingManager manager = RasterSwingLocator.getSwingManager();
296
                        String[] columnNames = {
297
                                        "-", 
298
                                        Messages.getText("num"), 
299
                                        Messages.getText("worldx"), 
300
                                        Messages.getText("worldy"), 
301
                                        Messages.getText("imagex"), 
302
                                        Messages.getText("imagey"), 
303
                                        "Error X", "Error Y", "RMS"};
304
                        int[] columnSizes = {40, 37, -1, -1, -1, -1, -1, -1, -1};
305

    
306
                        GCPModel model = new GCPModel(columnNames);
307
                        ModelLoader loader = manager.createModelLoader(model);
308
                        CheckBoxColumnRenderer render = new CheckBoxColumnRenderer(null);
309
                        CheckBoxColumnEditor editor = new CheckBoxColumnEditor();
310
                        loader.setRenderForColumn(0, render);
311
                        loader.setCellEditorForColumn(0, editor);
312
                        loader.setColumnNames(columnNames);
313
                        loader.setColumnWidths(columnSizes);
314
                        
315
                        table = manager.createPagedTable(loader);
316
                }
317
                return table;
318
        }
319
        
320
        /**
321
         * Colocaci?n inicial de las ventanas del espacio de trabajo. Carga la configuraci?n
322
         * de ventanas con cartograf?a de referencia.
323
         */
324
        private void initWindowsWithMap(GeoreferencingOptionsDataModel dataModel) {
325
                RasterDataStore store = dataModel.getDataStore();
326
                
327
                getOptionsDataModel().setType(WITH_MAP);
328
                                                 
329
                //Inicializaci?n de la ventana con la vista raster
330
                viewRaster = sManager.createView(true, false, true, listener);
331
                ViewRasterRequestManager viewRasterRequestManager = new ViewRasterRequestManager(viewRaster, store);
332
                viewRaster.setViewListener(listener);
333
                viewRaster.setRequestListener(viewRasterRequestManager);
334
                viewRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener);
335
                
336
                //Inicializaci?n de la ventana del zoom de la vista raster
337
                zoomRaster = sManager.createZoom(true, false);
338
                zoomRasterRequestManager = new ViewRasterRequestManager(zoomRaster, store);
339
                zoomRaster.setRequestListener(zoomRasterRequestManager);
340
                zoomRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener);
341
                
342
                //Inicializaci?n de la ventana con la vista del terreno
343
                viewMap = sManager.createView(true, false, false, listener);
344
                ViewMapRequestManager viewMapRequestManager = new ViewMapRequestManager(viewMap, getMapCtrl());
345
                viewMap.setViewListener(listener);
346
                viewMap.setRequestListener(viewMapRequestManager);
347
                viewMap.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener);
348
                
349
                //Inicializaci?n de la ventana del zoom de la vista del terreno
350
                zoomMap = sManager.createZoom(true, false);
351
                zoomMapRequestManager = new ViewMapRequestManager(zoomMap, getMapCtrl());
352
                zoomMap.setRequestListener(zoomMapRequestManager);
353
                zoomMap.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener);
354
                
355
                PagedTable pt = getTable();
356
                
357
                //Creamos el layout
358
                LayoutEnvironment layoutEnv = fManager.createLayoutEnvironment();
359
                layoutEnv.setTable((JPanel)pt.getComponent());
360
                layoutEnv.setViewRasterToGeoref(viewRaster.getComponent());
361
                layoutEnv.setViewZoomRasterToGeoref(zoomRaster.getComponent());
362
                layoutEnv.setViewBaseCartography(viewMap.getComponent());
363
                layoutEnv.setViewZoomBaseCartography(zoomMap.getComponent());
364
                layoutEnv.setControlBar(getGeorefControlPanel().getComponent());
365
                
366
                fManager.createLayout(layoutEnv);
367
                GeoreferencingView[] v = new GeoreferencingView[]{viewMap, viewRaster, zoomMap, zoomRaster};
368
                IViewRequestManager[] rm = new IViewRequestManager[]{viewMapRequestManager, viewRasterRequestManager, zoomMapRequestManager, zoomRasterRequestManager};
369
                syncViews = sManager.createSyncViews(v, rm, getGeoPointList(), pt, listener);
370
                
371
                getOptionsDataModel().setType(WITH_MAP);
372
//                
373
//                viewsManager.setViews(viewRaster, viewMap, zoomRaster, zoomMap);
374
//                viewsManager.setRequestsManager(viewRasterRequestManager, viewMapRequestManager, zoomRasterRequestManager, zoomMapRequestManager);
375
//                viewsManager.setTablePanel(table);
376
//                
377
                try {
378
                        viewMap.setCursorSize(zoomMap.getCanvasWidth() / ZOOM_RATIO, zoomMap.getCanvasHeight() / ZOOM_RATIO);
379
                        viewRaster.setCursorSize(zoomRaster.getCanvasWidth() / ZOOM_RATIO, zoomRaster.getCanvasHeight() / ZOOM_RATIO);
380
                        viewMap.setCursorPosition(viewMap.getCanvasWidth() / 2, viewMap.getCanvasHeight() / 2);
381
                        viewRaster.setCursorPosition(viewRaster.getCanvasWidth() / 2, viewRaster.getCanvasHeight() / 2);
382
                        
383
                        if(getMapCtrl().getMapContext().getLayers().getFullEnvelope() == null)
384
                                GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null);
385
                        
386
                        //Inicializamos la vista de mapa
387
                        Envelope e = getMapCtrl().getMapContext().getLayers().getFullEnvelope();
388
                        Rectangle2D r = new Rectangle2D.Double(e.getMinimum(0), e.getMinimum(1), e.getLength(0), e.getLength(1));
389
                        viewMapRequestManager.initRequest(r);
390
                        
391
                        //Inicializamos la vista de raster
392
                        viewRasterRequestManager.initRequest(store.getExtent().toRectangle2D());
393
                        
394
                        //Inicializamos el zoom de mapa
395
                        Rectangle2D ext = viewMap.getCursorAdjustedWorldCoordinates(zoomMap.getCanvasWidth(), zoomMap.getCanvasHeight());
396
                        zoomMapRequestManager.initRequest(ext);
397
                        
398
                        //Inicializamos el zoom de raster
399
                        ext = viewRaster.getCursorAdjustedWorldCoordinates(zoomRaster.getCanvasWidth(), zoomRaster.getCanvasHeight());
400
                        zoomRasterRequestManager.initRequest(store.getExtent().toRectangle2D());
401
                        zoomRasterRequestManager.request(ext);
402
                        
403
//                        layersPointManager.createGCPPIxelLayer(viewRaster, viewRasterRequestManager, zoomRasterRequestManager);
404
//                        layersPointManager.createGCPMapLayer(viewMap, viewMapRequestManager, zoomMapRequestManager);
405
//                        
406
                        processActions.setViewMapRequest(viewMapRequestManager);
407
                } catch (InvalidRequestException e1) {
408
                        GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", this, e1);
409
                        fManager.closeAllWindows();
410
                }catch (Exception e1) {
411
                        GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", this, e1);
412
                        fManager.closeAllWindows();
413
                }
414
        }
415
        
416
        /**
417
         * A?ade una capa en la vista del mapa para previsualizar el resultado
418
         * @param lyr
419
         */
420
        /*public void addTestRasterLayer(FLyrRaster lyr) {
421
                viewsManager.addTestRasterLayer(lyr, 
422
                                getOptions().getAlgorithm(), 
423
                                getOptions().getInterpolationMethod(), 
424
                                getOptions().getDegree(), 
425
                                getOptions().getOutFile());
426
        }*/
427
        
428
        /**
429
         * Elimina la capa de test de la vista de mapa
430
         * @throws InvalidRequestException 
431
         */
432
        /*public void removeTestRasterLayer() {
433
                viewsManager.removeTestRasterLayer();
434
        }*/
435
        
436
        /**
437
         * Obtiene la ?ltima capa procesada con los puntos de  control
438
         * @return FLyrRaterSE
439
         */
440
        /*public FLyrRaster getLastTestLayer() {
441
                return viewsManager.getLastTestLayer();
442
        }*/
443
        
444
        /**
445
         * Gets the georeferencing options data model
446
         * @return
447
         */
448
        public GeoreferencingOptionsDataModel getOptionsDataModel() {
449
                GeoreferencingSwingManager manager = GeoreferencingSwingLocator.getSwingManager();
450
                return manager.getDataModel();
451
                //options = manager.createWindowOptions(Georeferencing.DEFAULT_DEGREE, this);
452
        }
453
                
454
        public GeoreferencingView getViewRaster() {
455
                return viewRaster;
456
        }
457

    
458
        public GeoreferencingView getViewMap() {
459
                return viewMap;
460
        }
461

    
462
        public GeoreferencingView getZoomMap() {
463
                return zoomMap;
464
        }
465

    
466
        public GeoreferencingView getZoomRaster() {
467
                return zoomRaster;
468
        }
469

    
470
        public ViewRasterRequestManager getZoomRasterRequestManager() {
471
                return zoomRasterRequestManager;
472
        }
473

    
474
        public ViewMapRequestManager getZoomMapRequestManager() {
475
                return zoomMapRequestManager;
476
        }
477

    
478
        public GeorefControlPanel getGeorefControlPanel() {
479
                if(georefControlPanel == null) {
480
                        georefControlPanel = sManager.createGeorefControlPanel();
481
                }
482
                return georefControlPanel;
483
        }
484

    
485
        public SynchronizedViews getSyncViews() {
486
                return syncViews;
487
        }
488
        
489
        public GeoPointList getGeoPointList() {
490
                if(geoPointList == null)
491
                        geoPointList = new GeoPointListImpl();
492
                return geoPointList;
493
        }
494
        
495
        /**
496
         * Obtiene la capa a georreferenciar
497
         * @return FLyrRaster
498
         */
499
        public RasterDataStore getLayer() {
500
                return launcher.getDataModel().getDataStore();
501
        }
502
                
503
}