Statistics
| Revision:

root / trunk / extensions / extGeoreferencing / src / com / iver / cit / gvsig / fmap / layers / FLyrPoints.java @ 4729

History | View | Annotate | Download (18.6 KB)

1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 */
19
package com.iver.cit.gvsig.fmap.layers;
20

    
21
import java.awt.Color;
22
import java.awt.Graphics2D;
23
import java.awt.geom.Point2D;
24
import java.awt.geom.Rectangle2D;
25
import java.awt.image.BufferedImage;
26
import java.util.ArrayList;
27
import java.util.Iterator;
28

    
29
import com.iver.andami.PluginServices;
30
import com.iver.cit.gvsig.fmap.DriverException;
31
import com.iver.cit.gvsig.fmap.ViewPort;
32
import com.iver.cit.gvsig.fmap.operations.Cancellable;
33
import com.iver.cit.gvsig.gui.View;
34
import com.iver.cit.gvsig.gui.dialogs.GeoreferencingDialog;
35
import com.iver.cit.gvsig.utils.GeoPointPersistence;
36
import com.iver.cit.gvsig.utils.PointManager;
37

    
38

    
39
/**
40
 * Clase de capa de marcado de puntos sobre una vista. Dibuja un puntero sobre 
41
 * cada punto en la vista. Esta capa hereda de GraphicLayer que es una capa que est?
42
 * metida de forma fija en FMap. Con esto conseguimos que nuestra capa de puntos 
43
 * no aparezca en el TOC y siempre se dibuje por encima de todas las capas. Tiene
44
 * el inconveniente de que est? en FMap y si hacemos un dibujado de las capas 
45
 * sobre un panel que no sea la vista de gvSIG este GraphicLayer no aparece. 
46
 * Si queremos hacer este tipo de dibujados tendremos que dibujar todas las capas
47
 * con el draw de FLayers y al final llamar al draw de FLyrPoints. 
48
 *
49
 * @author Nacho Brodin (brodin_ign@gva.es)
50
 */
51
public class FLyrPoints extends GraphicLayer {
52
        
53
        //**********************Params********************************
54
        /**
55
         * Diametro del centro de la cruz
56
         */
57
        private final int                                 DIAM_CIRCLE = 18;
58
        /**
59
         * ?ltima herramienta seleccionada. Despu?s de marcar el segundo punto en la vista ser? la 
60
         * herramienta por defecto.
61
         */
62
        private String                                         lastTool = "zoomIn";
63
        //**********************End Params****************************
64
        
65
        //**********************Vars**********************************
66
        private ArrayList                                 pointList = new ArrayList();
67
        private boolean                                 showNumber = true;
68
        private FLyrPointsState                 state = null;
69
        private GeoPointPersistence         geoPointPersistence = null;
70
        private FLyrGeoRaster                         lyrGeoRaster = null;
71
        public static boolean                        isDrawing = false;
72
        private        PointManager                        pointManager = null;
73
        private        boolean                                        lyrVisible = true;
74
        //**********************End Vars**********************************
75
        
76
        //**********************Classes***********************************
77
        /**
78
         * Estado de la capa de puntos. 
79
         * @author Nacho Brodin (brodin_ign@gva.es)
80
         */
81
        public class FLyrPointsState{
82
                public ArrayList pointList = new ArrayList();
83
                public boolean showNumber = true;
84
                public String lastTool = "zoomIn";
85
        }
86
        //**********************End Classes*******************************
87

    
88
        //**********************Methods***********************************
89
        /**
90
         * Constructor
91
         * @param flyGeoRaster
92
         */
93
        public FLyrPoints(FLyrGeoRaster lyGeoRaster){
94
                this.lyrGeoRaster = lyGeoRaster;
95
                geoPointPersistence = new GeoPointPersistence(this);
96
        }
97
                
98
        /**
99
         * Salva el estado actual de la capa de puntos. Podr? ser recuperado
100
         * este ?ltimo estado salvado con la funci?n recoveryState
101
         *
102
         */
103
        public void saveState(){
104
                if(state == null)
105
                        state = new FLyrPointsState();
106
                else
107
                        state.pointList.clear();
108

    
109
                for(int i=0;i<this.length();i++)
110
                        state.pointList.add(((GeoPoint)pointList.get(i)).cloneGeoPoint());
111
                
112
                state.showNumber = showNumber;
113
                state.lastTool = lastTool;
114
        }
115
        
116
        /**
117
         * Recupera el estado de la capa de puntos desde la ?ltima vez que se
118
         * ejecut? la funci?n saveState. Si no hay ning?n estdo salvado es que
119
         * al principio estaba la capa vacia por lo que reiniciamos la capa de puntos.
120
         */
121
        public void recoveryState(){
122
                if(state != null){
123
                        pointList.clear();
124
                        for(int i=0;i<state.pointList.size();i++)
125
                                pointList.add(((GeoPoint)state.pointList.get(i)).cloneGeoPoint());
126
                        
127
                        showNumber = state.showNumber;
128
                        lastTool = state.lastTool;                                
129
                }
130
        }
131
        
132
        /**
133
         * Asigna el array de puntos 
134
         * @param list
135
         */
136
        public void setListPoint(ArrayList list){
137
                pointList = list;
138
        }
139
        
140
        /**
141
         * Dibujado de la capa de raster georeferenciado aplicando la 
142
         * transformaci?n del viewPort.
143
         */
144
        public void draw(BufferedImage image, Graphics2D g, ViewPort vp,
145
                        Cancellable cancel,double scale) throws DriverException {
146
                
147
                Point2D pto = null;
148
                
149
                if(lyrVisible && lyrGeoRaster != null){
150
                        //vp = lyrGeoRaster.toImageCoord(vp);
151
                        synchronized (this) {
152
                                for(int i=0; i<pointList.size();i++){
153
                                        //Punto de la imagen
154
                                        if(((GeoPoint)pointList.get(i)).active){
155
                                                pto = ((GeoPoint)pointList.get(i)).pixelPoint;
156
                                                if(pto != null){
157
                                                        Point2D p = lyrGeoRaster.img2World(pto);
158
                                                        p = vp.fromMapPoint(p);
159
                                                        drawPixelCrux(g, p, i);
160
                                                }
161
                                                
162
                                                //Punto de la vista
163
                                                pto = ((GeoPoint)pointList.get(i)).mapPoint;
164
                                                if(pto != null){
165
                                                        Point2D p = null;
166
                                                        p = vp.fromMapPoint(pto);
167
                                                        drawMapCrux(g, p, i);
168
                                                }
169
                                        }
170
                                }
171
                        }
172
                }
173
        }
174
        
175
        /**
176
         * Dibuja sobre el graphics pasado la cruz del punto que marca
177
         * el pixel de la imagen.
178
         * @param g Graphics
179
         */
180
        private void drawPixelCrux(Graphics2D g, Point2D p, int pointNumber){
181
                int dpto = (DIAM_CIRCLE >> 1);
182
                int incr = 5;
183
                g.setColor(Color.WHITE);
184
                g.drawOval(        (int)p.getX() - dpto + 1, 
185
                                        (int)p.getY() - dpto + 1, 
186
                                        DIAM_CIRCLE - 2, 
187
                                        DIAM_CIRCLE - 2);
188
                g.drawLine((int)p.getX() - incr, (int)p.getY() - 1, (int)p.getX() - 1, (int)p.getY() - 1);
189
                g.drawLine((int)p.getX() - incr, (int)p.getY() + 1, (int)p.getX() - 1, (int)p.getY() + 1);
190
                
191
                g.drawLine((int)p.getX() + incr, (int)p.getY() - 1, (int)p.getX() + 1, (int)p.getY() - 1);
192
                g.drawLine((int)p.getX() + incr, (int)p.getY() + 1, (int)p.getX() + 1, (int)p.getY() + 1);
193
                
194
                g.drawLine((int)p.getX() - 1, (int)p.getY() - incr, (int)p.getX() - 1, (int)p.getY() - 1);
195
                g.drawLine((int)p.getX() + 1, (int)p.getY() - incr, (int)p.getX() + 1, (int)p.getY() - 1);
196
                
197
                g.drawLine((int)p.getX() - 1, (int)p.getY() + incr, (int)p.getX() - 1, (int)p.getY() + 1);
198
                g.drawLine((int)p.getX() + 1, (int)p.getY() + incr, (int)p.getX() + 1, (int)p.getY() + 1);
199
                
200
                g.setColor(Color.red);
201
                g.drawOval(        (int)p.getX() - dpto, 
202
                                        (int)p.getY() - dpto, 
203
                                        DIAM_CIRCLE, 
204
                                        DIAM_CIRCLE);
205
                g.drawLine((int)p.getX(), (int)p.getY() - dpto - incr, (int)p.getX(), (int)p.getY() + dpto + incr);
206
                g.drawLine((int)p.getX() - dpto - incr, (int)p.getY(), (int)p.getX() + dpto + incr, (int)p.getY());
207
                                
208
                if(showNumber){
209
                        g.setColor(Color.WHITE);
210
                        g.drawString(String.valueOf(pointNumber + 1), (int)(p.getX() + dpto + 4), (int)(p.getY() - dpto - 4) );
211
                        g.setColor(Color.red);
212
                        g.drawString(String.valueOf(pointNumber + 1), (int)(p.getX() + dpto + 1), (int)(p.getY() - dpto - 1) );
213
                }
214
        }
215
        
216
        /**
217
         * Dibuja sobre el graphics pasado la cruz del punto que marca
218
         * la coordenada de la vista.
219
         * @param g Graphics
220
         */
221
        private void drawMapCrux(Graphics2D g, Point2D p, int pointNumber){
222
                int dpto = (DIAM_CIRCLE >> 1);
223
                int incr = 5;
224
                g.setColor(Color.WHITE);
225
                g.drawRect(        (int)p.getX() - dpto + 1, 
226
                                        (int)p.getY() - dpto + 1, 
227
                                        DIAM_CIRCLE - 2, 
228
                                        DIAM_CIRCLE - 2);
229
                g.drawLine((int)p.getX() - incr, (int)p.getY() - 1, (int)p.getX() - 1, (int)p.getY() - 1);
230
                g.drawLine((int)p.getX() - incr, (int)p.getY() + 1, (int)p.getX() - 1, (int)p.getY() + 1);
231
                
232
                g.drawLine((int)p.getX() + incr, (int)p.getY() - 1, (int)p.getX() + 1, (int)p.getY() - 1);
233
                g.drawLine((int)p.getX() + incr, (int)p.getY() + 1, (int)p.getX() + 1, (int)p.getY() + 1);
234
                
235
                g.drawLine((int)p.getX() - 1, (int)p.getY() - incr, (int)p.getX() - 1, (int)p.getY() - 1);
236
                g.drawLine((int)p.getX() + 1, (int)p.getY() - incr, (int)p.getX() + 1, (int)p.getY() - 1);
237
                
238
                g.drawLine((int)p.getX() - 1, (int)p.getY() + incr, (int)p.getX() - 1, (int)p.getY() + 1);
239
                g.drawLine((int)p.getX() + 1, (int)p.getY() + incr, (int)p.getX() + 1, (int)p.getY() + 1);
240
                
241
                g.setColor(new Color(45, 8 , 165));
242
                g.drawRect(        (int)p.getX() - dpto, 
243
                                        (int)p.getY() - dpto, 
244
                                        DIAM_CIRCLE, 
245
                                        DIAM_CIRCLE);
246
                g.drawLine((int)p.getX(), (int)p.getY() - dpto - incr, (int)p.getX(), (int)p.getY() + dpto + incr);
247
                g.drawLine((int)p.getX() - dpto - incr, (int)p.getY(), (int)p.getX() + dpto + incr, (int)p.getY());
248
                if(showNumber){
249
                        g.setColor(Color.WHITE);
250
                        g.drawString(String.valueOf(pointNumber + 1), (int)(p.getX() + dpto + 4), (int)(p.getY() - dpto - 4) );
251
                        g.setColor(new Color(45, 8 , 165));
252
                        g.drawString(String.valueOf(pointNumber + 1), (int)(p.getX() + dpto + 1), (int)(p.getY() - dpto - 1) );
253
                }
254
        }
255
        
256
        /* (non-Javadoc)
257
         * @see com.iver.cit.gvsig.fmap.layers.FLayer#print(java.awt.Graphics2D, com.iver.cit.gvsig.fmap.ViewPort, com.iver.cit.gvsig.fmap.operations.Cancellable, double)
258
         */
259
        public void print(Graphics2D g, ViewPort viewPort, Cancellable cancel,
260
                        double scale) throws DriverException {
261
                // TODO Auto-generated method stub
262

    
263
        }
264
        
265
        /**
266
         * Elimina los puntos de la lista que no tiene las dos coordenadas asignadas.
267
         */
268
        public void clean(){
269
                Iterator iter = pointList.iterator();
270
                while (iter.hasNext()) {
271
                        GeoPoint gp = (GeoPoint) iter.next();
272
                        if(gp.mapPoint == null || gp.pixelPoint == null)
273
                                iter.remove();
274
                }
275
        }
276
        /**
277
         * A?ade un punto a la lista
278
         * @param point punto para la lista
279
         */
280
        public void addPoint(Point2D pixel, Point2D map){
281
                pointList.add(new GeoPoint(pixel, map));
282
        }
283
        
284
        /**
285
         * Obtiene el punto de la posici?n pos 
286
         */
287
        public GeoPoint getPoint(int pos){
288
                try{
289
                        return (GeoPoint)pointList.get(pos);
290
                }catch(IndexOutOfBoundsException exc){
291
                        return null;
292
                }
293
        }
294
        
295
        /**
296
         * Elimina la lista de puntos almacenada
297
         */
298
        public void clear(){
299
                pointList = new ArrayList();
300
        }
301
        
302
        /**
303
         * Elimina el punto de la posici?n indicada por el par?metro pos
304
         * @param pos        Posici?n del punto a eliminar
305
         */
306
        public void remove(int pos){
307
                pointList.remove(pos);
308
        }
309
        
310
        /**
311
         *Elimina el ?ltimo punto de la lista.
312
         */
313
        public void delLastPoint(){
314
                pointList.remove(pointList.size() - 1);
315
        }
316
                
317
        /**
318
         * Devuelve el n?mero de puntos de la capa
319
         * @return entero que representa el n?mero de puntos de la capa
320
         */
321
        public int length(){
322
                return pointList.size();
323
        }
324
        
325
        /**
326
         * Actualiza un punto de la lista de una posici?n determinada
327
         * @param point punto para la lista
328
         */
329
        public void updatePoint(Point2D pixel, Point2D map, int pos){
330
                GeoPoint gp = (GeoPoint)pointList.get(pos);
331
                if(pixel != null)
332
                        gp.pixelPoint = pixel;
333
                if(map != null)
334
                        gp.mapPoint = map;
335
        }
336
                
337
        /**
338
         * Calcula el RMS para el punto de la posici?n pos
339
         * @param pos        Posici?n
340
         * @return        RMS en forma de String
341
         */
342
        public String calcRMS(int pos){
343
                return "0";
344
        }
345
        
346
        /**
347
         * Calcula el residuo en X para el punto de la posici?n pos
348
         * @param pos        Posici?n
349
         * @return        residuo Y en forma de String
350
         */
351
        public String calcResX(int pos){
352
                /*double resX = 0D;
353
                GeoPoint gp = this.getPoint(pos);
354
                resX = Math.sqrt((gp.mapPoint.getX() - gp.pixelPoint.getX()) * (gp.mapPoint.getX() - gp.pixelPoint.getX()));
355
                return String.valueOf(resX);*/
356
                return "0";
357
        }
358
        
359
        /**
360
         * Calcula el residuo en Y para el punto de la posici?n pos
361
         * @param pos        Posici?n
362
         * @return        residuo Y en forma de String
363
         */
364
        public String calcResY(int pos){
365
                return "0";
366
        }
367
        
368
        /**
369
         * 
370
         * @return        
371
         */
372
        public String calcTotal(){
373
                return "0";
374
        }
375
        
376
        /**
377
         * Muestra en consola los puntos de la capa
378
         */
379
        public void showPoints(){
380
                for(int i=0;i<pointList.size();i++){
381
                        if(((GeoPoint)pointList.get(i)).pixelPoint != null && ((GeoPoint)pointList.get(i)).mapPoint != null){
382
                                System.out.println("PUNTO "+i+": ");
383
                                System.out.println("pix->"+((GeoPoint)pointList.get(i)).pixelPoint.getX()+" "+((GeoPoint)pointList.get(i)).pixelPoint.getY());
384
                                System.out.println("map->"+((GeoPoint)pointList.get(i)).mapPoint.getX()+" "+((GeoPoint)pointList.get(i)).mapPoint.getY());
385
                                System.out.println("extRight->"+((GeoPoint)pointList.get(i)).rightViewPort.getExtent());
386
                                System.out.println("extLeft->"+((GeoPoint)pointList.get(i)).leftViewPort.getExtent());
387
                        }else
388
                                System.out.println("PUNTO "+i+": NULL");
389
                }
390
        }
391

    
392
        /**
393
         * Salva la lista de puntos sobre el fichero que se la pasa por
394
         * par?metro
395
         * @param file Nombre del fichero
396
         */
397
        public void PointList2XML(String file){;
398
                geoPointPersistence.savePointList(file);
399
        }
400
        
401
        /**
402
         * Recupera una lista de puntos desde un fichero XML
403
         * @param file Nombre del fichero
404
         */ 
405
        public void XML2PointList(String file){
406
                geoPointPersistence.loadPointList(file);
407
        }
408
        
409
        /**
410
         * Salva la lista de puntos en forma tabular sobre el fichero que se la pasa por
411
         * par?metro
412
         * @param file Nombre del fichero
413
         */
414
        public void PointList2Ascii(String file){;
415
                geoPointPersistence.saveAsciiPointList(file);
416
        }
417
        //**********************End Methods********************************
418
        
419
        //**********************Setters & Getters**************************
420
        /**
421
         * Asigna el viewPort de la mini imagen de la derecha en 
422
         * el punto de la posici?n que se le pasa por par?metro
423
         * @param pos Posici?n del punto
424
         * @param vp ViewPort asignado
425
         */
426
        public void setRightViewPort(int pos, ViewPort vp){
427
                getPoint(pos).rightViewPort = vp;
428
        }
429
        /**
430
         * @return Returns the showNumber.
431
         */
432
        public boolean isShowNumber() {
433
                return showNumber;
434
        }
435

    
436
        /**
437
         * @param showNumber The showNumber to set.
438
         */
439
        public void setShowNumber(boolean showNumber) {
440
                this.showNumber = showNumber;
441
        }
442
        
443
        /**
444
         * Asigna el punto central de la mini imagen de la izquierda 
445
         * en el punto de la posici?n que se le pasa por par?metro
446
         * @param pos Posici?n del punto
447
         * @param p Punto asignado
448
         */
449
        public void setLeftCenterPoint(int pos, Point2D p){
450
                getPoint(pos).leftCenterPoint = p;
451
        }
452
        
453
        /**
454
         * Asigna el punto central de la mini imagen de la derecha
455
         * en el punto de la posici?n que se le pasa por par?metro
456
         * @param pos Posici?n del punto
457
         * @param p Punto asignado
458
         */
459
        public void setRightCenterPoint(int pos, Point2D p){
460
                getPoint(pos).rightCenterPoint = p;
461
        }
462
        
463
        /**
464
         * Asigna el viewPort de la mini imagen de la izquierda en 
465
         * el punto de la posici?n que se le pasa por par?metro
466
         * @param pos Posici?n del punto
467
         * @param vp ViewPort asignado
468
         */
469
        public void setLeftViewPort(int pos, ViewPort vp){
470
                getPoint(pos).leftViewPort = vp;
471
        }
472
        
473
        /**
474
         * Devuelve el n?mero de puntos de la lista
475
         * @return entero que representa el n?mero de puntos
476
         */
477
        public int getCountPoints(){
478
                if(pointList != null)
479
                        return pointList.size();
480
                else 
481
                        return 0;
482
        }
483
        
484
        /**
485
         * Activa o desactiva el punto de una posici?n de la lista
486
         * @param n        N?mero de punto
487
         * @param active        true activo, false desactivo
488
         */
489
        public void setPointActive(int n, boolean active){
490
                if(n < 0 || n >= this.length())
491
                        return;
492
                ((GeoPoint)pointList.get(n)).active = active;
493
        }
494
        
495
        /**
496
         * Dice si un punto de la lista est? activo o no
497
         * @param n        Posici?n del punto 
498
         * @return        true si est? activo y false si no lo est?.
499
         */
500
        public boolean isPointActive(int n){
501
                if(n < 0 || n >= this.length())
502
                        return false;
503
                return ((GeoPoint)pointList.get(n)).active;
504
        }
505
        
506
        /**
507
         * Obtiene el extent de la capa
508
         * @return extent en Rectangle2D.
509
         */
510
        public Rectangle2D getFullExtent()throws DriverException {
511
                View theView = (View) PluginServices.getMDIManager().getActiveView();
512
                return theView.getMapControl().getMapContext().getViewPort().getExtent();
513
        }
514
        
515
        /**
516
         * @return Returns the lastTool.
517
         */
518
        public String getLastTool() {
519
                return lastTool;
520
        }
521
        
522
        /**
523
         * @param lastTool The lastTool to set.
524
         */
525
        public void setLastTool(String lastTool) {
526
                this.lastTool = lastTool;
527
        }
528
        
529
        /**
530
         *Asigna el extent para las mini imagenes. Estas deben ser recuperadas cuando se selecciona
531
         *un punto
532
         */
533
        public void setMiniExtent(int nPoint, Point2D centerPoint, ViewPort vp, boolean isRight){
534
                if(isRight){
535
                        ((GeoPoint)pointList.get(nPoint)).rightCenterPoint = centerPoint;
536
                        ((GeoPoint)pointList.get(nPoint)).rightViewPort = vp;
537
                }else{
538
                        ((GeoPoint)pointList.get(nPoint)).leftCenterPoint = centerPoint;
539
                        ((GeoPoint)pointList.get(nPoint)).leftViewPort = vp;
540
                }
541
        }
542
        
543
        /**
544
         * Obtiene el extent de la mini imagen
545
         * @param nPoint Punto de la lista
546
         * @return
547
         */
548
        public ViewPort getMiniExtent(int nPoint, boolean isRight){
549
                if(isRight)
550
                        return ((GeoPoint)pointList.get(nPoint)).rightViewPort;
551
                else
552
                        return ((GeoPoint)pointList.get(nPoint)).leftViewPort;
553
                
554
        }
555
        
556
        /**
557
         * Obtiene el punto central de la mini imagen
558
         * @param nPoint Punto de la lista
559
         * @return
560
         */
561
        public Point2D getCenterPoint(int nPoint, boolean isRight){
562
                if(isRight)
563
                        return ((GeoPoint)pointList.get(nPoint)).rightCenterPoint;
564
                else
565
                        return ((GeoPoint)pointList.get(nPoint)).leftCenterPoint;
566
        }
567
        
568
        /**
569
         * Obtiene le ?ltimo punto de la lista
570
         * @return El ?ltimo punto georreferenciado de la lista
571
         */
572
        public GeoPoint getLastPoint(){
573
                return (GeoPoint)pointList.get(pointList.size());
574
        }
575
        
576
        /**
577
         * Obtiene el array de puntos
578
         * @return
579
         */
580
        public ArrayList getListPoint(){
581
                return pointList;
582
        }
583
        
584
        /**
585
     * Obtiene el gestor de puntos
586
     * @return PointManager
587
     */
588
    public PointManager getPointManager() {
589
                return pointManager;
590
        }
591
    
592
    /**
593
     * Asigna el gestor de puntos
594
     * @param PointManager
595
     */
596
    public void setPointManager(PointManager pointManager) {
597
                this.pointManager = pointManager;
598
        }
599
    
600
    /**
601
     * Obtiene la capa de la imagen a georreferenciar
602
     * @return FLyrGeoRaster
603
     */
604
    public FLyrGeoRaster getLyrGeoRaster() {
605
                return lyrGeoRaster;
606
        }
607
    
608
    /**
609
         * Asigna la capa de la imagen a georreferenciar
610
         * @param flyGeoRaster
611
         */
612
        public void setLyrGeoRaster(FLyrGeoRaster lyGeoRaster){
613
                this.lyrGeoRaster = lyGeoRaster;
614
                if(geoPointPersistence == null)
615
                        geoPointPersistence = new GeoPointPersistence(this);
616
        }
617
        
618
        /**
619
         * Asigna el flag de visibilidad a true o false. Si est? a true la capa
620
         * es visible normalmente y si est? a false no se mostrar?
621
         * @param visible flag de visibilidad
622
         */
623
        public void setVisible(boolean visible){
624
                this.lyrVisible = visible;
625
        }
626
        
627
        /**
628
         * Obtiene el flag de visibilidad true o false. Si est? a true la capa
629
         * es visible normalmente y si est? a false no se muestra
630
         * @return flag de visibilidad
631
         */
632
        public boolean isVisible(){
633
                return this.lyrVisible;
634
        }
635
        //**********************End Setters & Getters*********************
636
}