Revision 1711
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 | ||
---|---|---|
34 | 34 |
import org.gvsig.app.project.documents.Document; |
35 | 35 |
import org.gvsig.app.project.documents.view.ViewDocument; |
36 | 36 |
import org.gvsig.app.project.documents.view.gui.IView; |
37 |
import org.gvsig.fmap.dal.coverage.RasterLocator; |
|
38 | 37 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
39 |
import org.gvsig.fmap.mapcontext.layers.FLayers;
|
|
38 |
import org.gvsig.fmap.geom.primitive.Envelope;
|
|
40 | 39 |
import org.gvsig.fmap.mapcontrol.MapControl; |
41 | 40 |
import org.gvsig.i18n.Messages; |
42 | 41 |
import org.gvsig.raster.georeferencing.app.georeferencingclient.gui.CheckBoxColumnEditor; |
... | ... | |
67 | 66 |
import org.gvsig.raster.swing.RasterSwingManager; |
68 | 67 |
import org.gvsig.raster.swing.pagedtable.ModelLoader; |
69 | 68 |
import org.gvsig.raster.swing.pagedtable.PagedTable; |
70 |
import org.jdesktop.swingx.renderer.MappedValue; |
|
71 | 69 |
|
72 | 70 |
/** |
73 | 71 |
* Clase principal para la georreferenciaci?n. Se encarga de la inicializaci?n |
... | ... | |
124 | 122 |
private GeoreferencingOptionsDataModel |
125 | 123 |
optionsDataModel = null; |
126 | 124 |
private MapControl mapCtrl = null; |
125 |
private GeoreferencingOptionsDataModel |
|
126 |
dataModel = null; |
|
127 | 127 |
|
128 | 128 |
//private LayersPointManager layersPointManager = null; |
129 | 129 |
//private ViewsManager viewsManager = null; |
... | ... | |
196 | 196 |
return null; |
197 | 197 |
}*/ |
198 | 198 |
|
199 |
private MapControl getMapCtrl(String viewName) {
|
|
199 |
private MapControl getMapCtrl() { |
|
200 | 200 |
if(mapCtrl == null) { |
201 | 201 |
IWindow[] windowList = PluginServices.getMDIManager().getAllWindows(); |
202 | 202 |
for (int i = 0; i < windowList.length; i++) { |
203 | 203 |
if(windowList[i] instanceof IView) { |
204 | 204 |
String name = ((IView)windowList[i]).getViewDocument().getName(); |
205 |
if(name.equals(viewName)) {
|
|
205 |
if(name.equals(dataModel.getSelectedView())) {
|
|
206 | 206 |
mapCtrl = ((IView)windowList[i]).getMapControl(); |
207 | 207 |
} |
208 | 208 |
} |
... | ... | |
211 | 211 |
return mapCtrl; |
212 | 212 |
} |
213 | 213 |
|
214 |
public void endLauncherDialog(GeoreferencingOptionsDataModel dataModel) { |
|
215 |
this.dataModel = dataModel; |
|
216 |
if(dataModel.getType() == Georeferencing.WITH_MAP) |
|
217 |
initWindowsWithMap(dataModel); |
|
218 |
if(dataModel.getType() == Georeferencing.WITHOUT_MAP) |
|
219 |
initWindowsWithoutMap(dataModel); |
|
220 |
} |
|
221 |
|
|
214 | 222 |
/** |
215 | 223 |
* Colocaci?n inicial de las ventanas del espacio de trabajo. Carga la configuraci?n |
216 | 224 |
* de ventanas con cartograf?a de referencia. |
217 | 225 |
*/ |
218 |
public void initWindowsWithoutMap(GeoreferencingOptionsDataModel dataModel) {
|
|
226 |
private void initWindowsWithoutMap(GeoreferencingOptionsDataModel dataModel) {
|
|
219 | 227 |
RasterDataStore store = dataModel.getDataStore(); |
220 | 228 |
|
221 | 229 |
getOptions().setType(WITHOUT_MAP); |
... | ... | |
262 | 270 |
Rectangle2D ext = viewRaster.getCursorAdjustedWorldCoordinates(zoomRaster.getCanvasWidth(), zoomRaster.getCanvasHeight()); |
263 | 271 |
zoomRasterRequestManager.initRequest(dataModel.getDataStore().getExtent().toRectangle2D()); |
264 | 272 |
zoomRasterRequestManager.request(ext); |
265 |
|
|
266 |
// layersPointManager.createGCPPIxelLayer(viewRaster, viewRasterRequestManager, zoomRasterRequestManager); |
|
267 |
// |
|
273 |
|
|
268 | 274 |
} catch (InvalidRequestException e1) { |
269 |
GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", this, e1);
|
|
275 |
GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e1);
|
|
270 | 276 |
fManager.closeAllWindows(); |
271 | 277 |
}catch (Exception e1) { |
272 |
GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", this, e1);
|
|
278 |
GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e1);
|
|
273 | 279 |
fManager.closeAllWindows(); |
274 | 280 |
} |
275 | 281 |
} |
... | ... | |
305 | 311 |
* Colocaci?n inicial de las ventanas del espacio de trabajo. Carga la configuraci?n |
306 | 312 |
* de ventanas con cartograf?a de referencia. |
307 | 313 |
*/ |
308 |
public void initWindowsWithMap(GeoreferencingOptionsDataModel dataModel) {
|
|
314 |
private void initWindowsWithMap(GeoreferencingOptionsDataModel dataModel) {
|
|
309 | 315 |
RasterDataStore store = dataModel.getDataStore(); |
310 | 316 |
|
311 | 317 |
getOptions().setType(WITH_MAP); |
... | ... | |
350 | 356 |
layoutEnv.setControlBar(georefControlPanel.getComponent()); |
351 | 357 |
|
352 | 358 |
fManager.createLayout(layoutEnv); |
353 |
SynchronizedViews syncViews = sManager.createSyncViews(null, viewRaster, null, zoomRaster, table, this);
|
|
359 |
SynchronizedViews syncViews = sManager.createSyncViews(viewMap, viewRaster, zoomMap, zoomRaster, table, this);
|
|
354 | 360 |
|
355 |
|
|
356 | 361 |
getOptions().setType(WITH_MAP); |
357 | 362 |
// |
358 |
// //Si hay ventanas de georreferenciaci?n abiertas las cerramos |
|
359 |
// closeAllWindows(); |
|
360 |
// |
|
361 |
// MapControl mapControl = null; |
|
362 |
// IWindow[] windowList = PluginServices.getMDIManager().getAllWindows(); |
|
363 |
// for (int i = 0; i < windowList.length; i++) { |
|
364 |
// if(windowList[i] instanceof IView && windowList[i].getWindowInfo().getTitle().endsWith(": " + selectedView)) |
|
365 |
// mapControl = ((IView)windowList[i]).getMapControl(); |
|
366 |
// } |
|
367 |
// |
|
368 |
// if(mapControl == null) { |
|
369 |
// RasterToolsUtil.messageBoxError("error_lookingfor_view", this); |
|
370 |
// return; |
|
371 |
// } |
|
372 |
// |
|
373 |
// //Inicializamos el control de tabla |
|
374 |
// table = new GCPTablePanelImpl(smallWindowsWidth, posYViews, tableWidth, smallWindowsHeight, this); |
|
375 |
// buttonsListener = new TableControlListener(table, this); |
|
376 |
// table.initialize(buttonsListener); |
|
377 |
// |
|
378 |
// //Inicializaci?n de la ventana con la vista mapa |
|
379 |
// viewMap = new ViewPanelImpl(0, 0, wViews, hViews, this); |
|
380 |
// viewMap.setViewListener(this); |
|
381 |
// viewMap.setShowInfo(true); |
|
382 |
// ViewMapRequestManager viewMapRequestManager = new ViewMapRequestManager(viewMap, mapControl); |
|
383 |
// viewMap.setExtensionRequest(viewMapRequestManager); |
|
384 |
// viewMapSelectPointTool = new SelectPointTool(viewMap.getCanvas(), this); |
|
385 |
// |
|
386 |
// //Inicializaci?n de la ventana con la vista raster |
|
387 |
// viewRaster = new ViewPanelImpl(wViews, 0, wViews, hViews, this); |
|
388 |
// viewRaster.setViewListener(this); |
|
389 |
// viewRaster.setMinxMaxyUL(false); |
|
390 |
// viewRaster.setShowInfo(true); |
|
391 |
// ViewRasterRequestManager viewRasterRequestManager = new ViewRasterRequestManager(viewRaster, lyrToGeoref); |
|
392 |
// viewRaster.setExtensionRequest(viewRasterRequestManager); |
|
393 |
// viewRasterSelectPointTool = new SelectPointTool(viewRaster.getCanvas(), this); |
|
394 |
// |
|
395 |
// //Inicializaci?n de la ventana del zoom de la vista raster |
|
396 |
// zoomRaster = new ZoomPanelImpl(smallWindowsWidth + tableWidth, posYViews, smallWindowsWidth, smallWindowsHeight); |
|
397 |
// zoomRaster.setMinxMaxyUL(false); |
|
398 |
// zoomRaster.setShowInfo(true); |
|
399 |
// ViewRasterRequestManager zoomRasterRequestManager = new ViewRasterRequestManager(zoomRaster, lyrToGeoref); |
|
400 |
// zoomRaster.setExtensionRequest(zoomRasterRequestManager); |
|
401 |
// zoomRasterSelectPointTool = new SelectPointTool(zoomRaster.getCanvas(), this); |
|
402 |
// |
|
403 |
// //Inicializaci?n de la ventana del zoom de la vista de referencia |
|
404 |
// zoomMap = new ZoomPanelImpl(0, posYViews, smallWindowsWidth, smallWindowsHeight); |
|
405 |
// zoomMap.setShowInfo(true); |
|
406 |
// ViewMapRequestManager zoomMapRequestManager = new ViewMapRequestManager(zoomMap, mapControl); |
|
407 |
// zoomMap.setExtensionRequest(zoomMapRequestManager); |
|
408 |
// zoomMapSelectPointTool = new SelectPointTool(zoomMap.getCanvas(), this); |
|
409 |
// |
|
410 |
// //A?adimos las ventanas a gvSIG |
|
411 |
// PluginServices.getMDIManager().addWindow(viewRaster); |
|
412 |
// PluginServices.getMDIManager().addWindow(viewMap); |
|
413 |
// PluginServices.getMDIManager().addWindow(table); |
|
414 |
// PluginServices.getMDIManager().addWindow(zoomMap); |
|
415 |
// PluginServices.getMDIManager().addWindow(zoomRaster); |
|
416 |
// |
|
417 |
// layersPointManager.setViews(viewRaster, viewMap, zoomRaster, zoomMap); |
|
418 |
// layersPointManager.setTools(viewRasterSelectPointTool, viewMapSelectPointTool, zoomRasterSelectPointTool, zoomMapSelectPointTool); |
|
419 |
// layersPointManager.registerPointToolListener(); |
|
420 |
// |
|
421 | 363 |
// viewsManager.setViews(viewRaster, viewMap, zoomRaster, zoomMap); |
422 | 364 |
// viewsManager.setRequestsManager(viewRasterRequestManager, viewMapRequestManager, zoomRasterRequestManager, zoomMapRequestManager); |
423 | 365 |
// viewsManager.setTablePanel(table); |
424 | 366 |
// |
425 |
// try { |
|
426 |
// viewMap.setCursorSize(zoomMap.getCanvasWidth() / ZOOM_RATIO, zoomMap.getCanvasHeight() / ZOOM_RATIO); |
|
427 |
// viewRaster.setCursorSize(zoomRaster.getCanvasWidth() / ZOOM_RATIO, zoomRaster.getCanvasHeight() / ZOOM_RATIO); |
|
428 |
// viewMap.setCursorPosition(viewMap.getCanvasWidth() / 2, viewMap.getCanvasHeight() / 2); |
|
429 |
// viewRaster.setCursorPosition(viewRaster.getCanvasWidth() / 2, viewRaster.getCanvasHeight() / 2); |
|
430 |
// |
|
431 |
// if(mapControl.getMapContext().getLayers().getFullExtent() == null) |
|
432 |
// RasterToolsUtil.messageBoxError("error_setview_preview", this); |
|
433 |
// |
|
434 |
// //Inicializamos la vista de mapa |
|
435 |
// viewMapRequestManager.initRequest(mapControl.getMapContext().getLayers().getFullExtent()); |
|
436 |
// |
|
437 |
// //Inicializamos la vista de raster |
|
438 |
// viewRasterRequestManager.initRequest(lyrToGeoref.getFullExtent()); |
|
439 |
// |
|
440 |
// //Inicializamos el zoom de mapa |
|
441 |
// Rectangle2D ext = viewMap.getCursorAdjustedWorldCoordinates(zoomMap.getCanvasWidth(), zoomMap.getCanvasHeight()); |
|
442 |
// zoomMapRequestManager.initRequest(ext); |
|
443 |
// |
|
444 |
// //Inicializamos el zoom de raster |
|
445 |
// ext = viewRaster.getCursorAdjustedWorldCoordinates(zoomRaster.getCanvasWidth(), zoomRaster.getCanvasHeight()); |
|
446 |
// zoomRasterRequestManager.initRequest(lyrToGeoref.getFullExtent()); |
|
447 |
// zoomRasterRequestManager.request(ext); |
|
448 |
// |
|
367 |
try { |
|
368 |
viewMap.setCursorSize(zoomMap.getCanvasWidth() / ZOOM_RATIO, zoomMap.getCanvasHeight() / ZOOM_RATIO); |
|
369 |
viewRaster.setCursorSize(zoomRaster.getCanvasWidth() / ZOOM_RATIO, zoomRaster.getCanvasHeight() / ZOOM_RATIO); |
|
370 |
viewMap.setCursorPosition(viewMap.getCanvasWidth() / 2, viewMap.getCanvasHeight() / 2); |
|
371 |
viewRaster.setCursorPosition(viewRaster.getCanvasWidth() / 2, viewRaster.getCanvasHeight() / 2); |
|
372 |
|
|
373 |
if(getMapCtrl().getMapContext().getLayers().getFullEnvelope() == null) |
|
374 |
GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null); |
|
375 |
|
|
376 |
//Inicializamos la vista de mapa |
|
377 |
Envelope e = getMapCtrl().getMapContext().getLayers().getFullEnvelope(); |
|
378 |
Rectangle2D r = new Rectangle2D.Double(e.getMinimum(0), e.getMinimum(1), e.getLength(0), e.getLength(1)); |
|
379 |
viewMapRequestManager.initRequest(r); |
|
380 |
|
|
381 |
//Inicializamos la vista de raster |
|
382 |
viewRasterRequestManager.initRequest(store.getExtent().toRectangle2D()); |
|
383 |
|
|
384 |
//Inicializamos el zoom de mapa |
|
385 |
Rectangle2D ext = viewMap.getCursorAdjustedWorldCoordinates(zoomMap.getCanvasWidth(), zoomMap.getCanvasHeight()); |
|
386 |
zoomMapRequestManager.initRequest(ext); |
|
387 |
|
|
388 |
//Inicializamos el zoom de raster |
|
389 |
ext = viewRaster.getCursorAdjustedWorldCoordinates(zoomRaster.getCanvasWidth(), zoomRaster.getCanvasHeight()); |
|
390 |
zoomRasterRequestManager.initRequest(store.getExtent().toRectangle2D()); |
|
391 |
zoomRasterRequestManager.request(ext); |
|
392 |
|
|
449 | 393 |
// layersPointManager.createGCPPIxelLayer(viewRaster, viewRasterRequestManager, zoomRasterRequestManager); |
450 | 394 |
// layersPointManager.createGCPMapLayer(viewMap, viewMapRequestManager, zoomMapRequestManager); |
451 | 395 |
// |
452 |
// } catch (InvalidRequestException e1) {
|
|
453 |
// RasterToolsUtil.messageBoxError("error_setview_preview", this, e1);
|
|
454 |
// closeAllWindows();
|
|
455 |
// }catch (Exception e1) {
|
|
456 |
// RasterToolsUtil.messageBoxError("error_setview_preview", this, e1);
|
|
457 |
// closeAllWindows();
|
|
458 |
// }
|
|
396 |
} catch (InvalidRequestException e1) { |
|
397 |
GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", this, e1);
|
|
398 |
fManager.closeAllWindows();
|
|
399 |
}catch (Exception e1) { |
|
400 |
GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", this, e1);
|
|
401 |
fManager.closeAllWindows();
|
|
402 |
} |
|
459 | 403 |
} |
460 | 404 |
|
461 | 405 |
/** |
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/listener/LauncherDialogListener.java | ||
---|---|---|
76 | 76 |
if(storeToGeoref == null) |
77 | 77 |
RasterToolsUtil.messageBoxError("layer_not_loaded", this); |
78 | 78 |
else { |
79 |
storeToGeoref.setAffineTransform(new AffineTransform(1, 0, 0, 1, 0, 0));
|
|
79 |
//storeToGeoref.setAffineTransform(new AffineTransform(1, 0, 0, -1, 0, 0));
|
|
80 | 80 |
GeoreferencingFrameworkManager fManager = GeoreferencingFrameworkLocator.getManager(); |
81 | 81 |
fManager.closeWindow(initDialog.getComponent()); |
82 |
if(dataModel.getType() == Georeferencing.WITH_MAP) |
|
83 |
app.initWindowsWithMap(dataModel); |
|
84 |
if(dataModel.getType() == Georeferencing.WITHOUT_MAP) |
|
85 |
app.initWindowsWithoutMap(dataModel); |
|
82 |
app.endLauncherDialog(dataModel); |
|
86 | 83 |
} |
87 | 84 |
} |
88 | 85 |
} |
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/listener/ViewRasterRequestManager.java | ||
---|---|---|
24 | 24 |
import java.awt.Color; |
25 | 25 |
import java.awt.Dimension; |
26 | 26 |
import java.awt.Graphics2D; |
27 |
import java.awt.geom.AffineTransform; |
|
28 | 27 |
import java.awt.geom.Point2D; |
29 | 28 |
import java.awt.geom.Rectangle2D; |
30 | 29 |
import java.awt.image.BufferedImage; |
31 | 30 |
|
32 | 31 |
import org.gvsig.fmap.dal.coverage.RasterLocator; |
33 | 32 |
import org.gvsig.fmap.dal.coverage.datastruct.Extent; |
34 |
import org.gvsig.fmap.dal.coverage.datastruct.ViewPortData; |
|
35 |
import org.gvsig.fmap.dal.coverage.exception.InvalidSetViewException; |
|
36 |
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException; |
|
37 |
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException; |
|
38 | 33 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
39 |
import org.gvsig.fmap.dal.coverage.util.RasterUtils; |
|
34 |
import org.gvsig.fmap.dal.exception.ReadException; |
|
35 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
36 |
import org.gvsig.fmap.geom.GeometryManager; |
|
37 |
import org.gvsig.fmap.geom.Geometry.SUBTYPES; |
|
38 |
import org.gvsig.fmap.geom.exception.CreateEnvelopeException; |
|
39 |
import org.gvsig.fmap.geom.primitive.Envelope; |
|
40 |
import org.gvsig.fmap.mapcontext.ViewPort; |
|
41 |
import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException; |
|
42 |
import org.gvsig.raster.fmap.layers.DefaultFLyrRaster; |
|
43 |
import org.gvsig.raster.fmap.layers.FLyrRaster; |
|
40 | 44 |
import org.gvsig.raster.georeferencing.swing.exception.InvalidRequestException; |
41 | 45 |
import org.gvsig.raster.georeferencing.swing.impl.GeoreferencingSwingImplLibrary; |
42 | 46 |
import org.gvsig.raster.georeferencing.swing.impl.layer.GCPsGraphicLayer; |
... | ... | |
48 | 52 |
* @author Nacho Brodin (nachobrodin@gmail.com) |
49 | 53 |
*/ |
50 | 54 |
public class ViewRasterRequestManager implements IExtensionRequest { |
55 |
private GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
51 | 56 |
private GeoreferencingView view = null; |
52 | 57 |
private RasterDataStore store = null; |
53 | 58 |
private IGraphicLayer graphicLayer = null; |
54 | 59 |
private Color backGroundColor = null; |
60 |
private FLyrRaster lyr = null; |
|
55 | 61 |
|
56 | 62 |
/** |
57 | 63 |
* Asigna la capa a georreferenciar de donde se obtienen los datos. |
... | ... | |
60 | 66 |
public ViewRasterRequestManager(GeoreferencingView view, RasterDataStore store) { |
61 | 67 |
this.store = store; |
62 | 68 |
this.view = view; |
69 |
lyr = new DefaultFLyrRaster(); |
|
70 |
try { |
|
71 |
((DefaultFLyrRaster)lyr).setDataStore(store); |
|
72 |
} catch (LoadLayerException e) { |
|
73 |
GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e); |
|
74 |
} |
|
63 | 75 |
} |
64 | 76 |
|
65 | 77 |
/** |
... | ... | |
86 | 98 |
if(extent.getWidth() < extent.getHeight()) { |
87 | 99 |
if(((double)view.getCanvasWidth() / (double)view.getCanvasHeight()) <= (extent.getWidth() / extent.getHeight())) { |
88 | 100 |
h = (view.getCanvasHeight() * w) / view.getCanvasWidth(); |
89 |
y = extent.getCenterY() - (h / 2);
|
|
101 |
y = extent.getCenterY() + (h / 2);
|
|
90 | 102 |
} else { //p1 < p2 |
91 | 103 |
w = (view.getCanvasWidth() * h) / view.getCanvasHeight(); |
92 | 104 |
x = extent.getCenterX() - (w / 2); |
... | ... | |
97 | 109 |
x = extent.getCenterX() - (w / 2); |
98 | 110 |
} else { //p1 < p2 |
99 | 111 |
h = (view.getCanvasHeight() * w) / view.getCanvasWidth(); |
100 |
y = extent.getCenterY() - (h / 2);
|
|
112 |
y = extent.getCenterY() + (h / 2);
|
|
101 | 113 |
} |
102 | 114 |
} |
103 | 115 |
Rectangle2D r = new Rectangle2D.Double(x, y, w, h); |
... | ... | |
121 | 133 |
} |
122 | 134 |
|
123 | 135 |
/** |
124 |
* Ajusta la extensi?n del primer par?metro a los l?mites de la segunda |
|
125 |
* @param extToAdj |
|
126 |
* @param imgExt |
|
127 |
* @return |
|
128 |
*/ |
|
129 |
private Extent calculateAdjustedView(Extent extToAdj, Extent imgExt) { |
|
130 |
double vx = extToAdj.minX(); |
|
131 |
double vy = extToAdj.minY(); |
|
132 |
double vx2 = extToAdj.maxX(); |
|
133 |
double vy2 = extToAdj.maxY(); |
|
134 |
|
|
135 |
if (extToAdj.minX() < imgExt.minX()) |
|
136 |
vx = imgExt.minX(); |
|
137 |
if (extToAdj.minY() < imgExt.minY()) |
|
138 |
vy = imgExt.minY(); |
|
139 |
if (extToAdj.maxX() > imgExt.maxX()) |
|
140 |
vx2 = imgExt.maxX(); |
|
141 |
if (extToAdj.maxY() > imgExt.maxY()) |
|
142 |
vy2 = imgExt.maxY(); |
|
143 |
|
|
144 |
return RasterLocator.getManager().getDataStructFactory().createExtent(vx, vy2, vx2, vy); |
|
145 |
} |
|
146 |
|
|
147 |
/** |
|
148 | 136 |
* Obtiene el color de fondo |
149 | 137 |
* @return |
150 | 138 |
*/ |
... | ... | |
174 | 162 |
} |
175 | 163 |
|
176 | 164 |
//Ajustamos el extent al del raster |
177 |
Extent ext = null; |
|
178 |
Extent extSelection = null; |
|
179 |
if(view.getCanvas().getMinxMaxyUL()) { |
|
165 |
Extent ext = RasterLocator.getManager().getDataStructFactory().createExtent(extent.getMinX(), extent.getMaxY(), extent.getMaxX(), extent.getMinY()); |
|
166 |
/*if(view.getCanvas().getMinxMaxyUL()) { |
|
180 | 167 |
ext = RasterLocator.getManager().getDataStructFactory().createExtent(extent); |
181 |
extSelection = calculateAdjustedView(ext, store.getExtent()); |
|
182 | 168 |
} else { |
183 | 169 |
ext = RasterLocator.getManager().getDataStructFactory().createExtent(extent.getMinX(), extent.getMinY(), extent.getMaxX(), extent.getMaxY()); |
184 |
RasterUtils rasterUtil = RasterLocator.getManager().getRasterUtils(); |
|
185 |
extSelection = rasterUtil.calculateAdjustedView(ext, store.getExtent()); |
|
186 |
} |
|
170 |
}*/ |
|
187 | 171 |
|
188 |
//Obtenemos el viewport y calculamos la matriz de transformaci?n |
|
189 |
ViewPortData vp = RasterLocator.getManager().createViewPortData(); |
|
190 |
vp.setExtent(ext); |
|
191 |
vp.setSize(new Dimension(view.getCanvasWidth(), view.getCanvasHeight())); |
|
192 |
vp.calculateAffineTransform(); |
|
193 |
|
|
194 |
//Calculamos el punto del canvas de la vista donde se empieza a dibujar el buffer de la imagen |
|
195 |
Point2D pt = new Point2D.Double(extSelection.getULX(), extSelection.getULY()); |
|
196 |
AffineTransform at = vp.getMat(); |
|
197 |
if(!view.getCanvas().getMinxMaxyUL()) { |
|
198 |
at = new AffineTransform(1, 0, 0, -1, 0, 0); |
|
199 |
at.concatenate(vp.getMat()); |
|
200 |
} |
|
201 |
at.transform(pt, pt); |
|
202 |
|
|
203 | 172 |
try { |
173 |
ViewPort vp = new ViewPort(); |
|
174 |
vp.setImageSize(new Dimension(view.getCanvasWidth(), view.getCanvasHeight())); |
|
175 |
Envelope env = geomManager.createEnvelope(ext.getMin().getX(), ext.getMin().getY(), ext.getMax().getX(), ext.getMax().getY(), SUBTYPES.GEOM2D); |
|
176 |
vp.setEnvelope(env); |
|
177 |
|
|
204 | 178 |
//Dibujamos a trav?s del render de la capa en un graphics como el de la vista |
205 |
BufferedImage initImg = new BufferedImage(view.getCanvasWidth(), view.getCanvasHeight(), BufferedImage.TYPE_INT_RGB); |
|
179 |
BufferedImage initImg = new BufferedImage(view.getCanvasWidth(), view.getCanvasHeight(), BufferedImage.TYPE_INT_ARGB);
|
|
206 | 180 |
Graphics2D g2d = ((Graphics2D)initImg.getGraphics()); |
207 | 181 |
if(backGroundColor != null && backGroundColor != Color.BLACK) { |
208 | 182 |
g2d.setColor(backGroundColor); |
209 | 183 |
g2d.fillRect(0, 0, view.getCanvasWidth(), view.getCanvasHeight()); |
210 | 184 |
} |
211 |
BufferedImage drawedImg = (BufferedImage)store.getRender().draw(g2d, vp, null); |
|
212 |
g2d.drawImage(drawedImg, (int) Math.round(pt.getX()), (int) Math.round(pt.getY()), null); |
|
185 |
lyr.draw(initImg, g2d, vp, null, 1); |
|
213 | 186 |
|
214 | 187 |
setDrawParams(initImg, extent); |
215 | 188 |
|
216 | 189 |
if(graphicLayer != null) |
217 | 190 |
graphicLayer.recalcPixelDrawCoordinates(); |
218 | 191 |
|
219 |
} catch (RasterDriverException e) {
|
|
192 |
} catch (ReadException e) {
|
|
220 | 193 |
throw new InvalidRequestException("Error en al acceso al fichero", e); |
221 |
} catch (InvalidSetViewException e) {
|
|
194 |
} catch (CreateEnvelopeException e) {
|
|
222 | 195 |
throw new InvalidRequestException("Error asignando el ?rea de la petici?n", e); |
223 |
} catch (ProcessInterruptedException e) { |
|
224 | 196 |
} |
225 | 197 |
return extent; |
226 | 198 |
} |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app/org.gvsig.raster.georeferencing.app.georeferencingclient/pom.xml | ||
---|---|---|
54 | 54 |
<dependency> |
55 | 55 |
<groupId>org.gvsig</groupId> |
56 | 56 |
<artifactId>org.gvsig.raster.georeferencing.swing.impl</artifactId> |
57 |
<scope>runtime</scope>
|
|
57 |
<scope>compile</scope>
|
|
58 | 58 |
</dependency> |
59 | 59 |
<dependency> |
60 | 60 |
<groupId>org.gvsig</groupId> |
... | ... | |
78 | 78 |
</dependency> |
79 | 79 |
<dependency> |
80 | 80 |
<groupId>org.gvsig</groupId> |
81 |
<artifactId>org.gvsig.fmap.geometry</artifactId> |
|
82 |
<scope>compile</scope> |
|
83 |
</dependency> |
|
84 |
<dependency> |
|
85 |
<groupId>org.gvsig</groupId> |
|
81 | 86 |
<artifactId>org.gvsig.fmap.dal</artifactId> |
82 | 87 |
<classifier>spi</classifier> |
83 | 88 |
<scope>compile</scope> |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.api/src/main/java/org/gvsig/raster/georeferencing/swing/view/GeorefCanvas.java | ||
---|---|---|
174 | 174 |
* de ser false esta esquina ser?a de m?nimo X y m?nimo Y. |
175 | 175 |
* @param v |
176 | 176 |
*/ |
177 |
public void setMinxMaxyUL(boolean v); |
|
177 |
//public void setMinxMaxyUL(boolean v);
|
|
178 | 178 |
|
179 | 179 |
/** |
180 | 180 |
* Obtiene el valor para el flag minxMaxyUL. Este flag informa de que la esquina |
... | ... | |
182 | 182 |
* de ser false esta esquina ser?a de m?nimo X y m?nimo Y. |
183 | 183 |
* @param v |
184 | 184 |
*/ |
185 |
public boolean getMinxMaxyUL(); |
|
185 |
//public boolean getMinxMaxyUL();
|
|
186 | 186 |
|
187 | 187 |
/** |
188 | 188 |
* Asigna el color del texto |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.impl/src/main/java/org/gvsig/raster/georeferencing/swing/impl/DefaultGeoreferencingSwingManager.java | ||
---|---|---|
110 | 110 |
boolean rightSideButtons, |
111 | 111 |
ToolListener toolListener) { |
112 | 112 |
ViewPanelImpl v = new ViewPanelImpl(toolListener, rightSideButtons); |
113 |
v.setMinxMaxyUL(minMaxUL); |
|
113 |
//v.setMinxMaxyUL(minMaxUL);
|
|
114 | 114 |
v.setShowInfo(showInfo); |
115 | 115 |
return v; |
116 | 116 |
} |
... | ... | |
119 | 119 |
boolean showInfo, |
120 | 120 |
boolean minMaxUL) { |
121 | 121 |
ZoomPanelImpl v = new ZoomPanelImpl(); |
122 |
v.setMinxMaxyUL(minMaxUL); |
|
122 |
//v.setMinxMaxyUL(minMaxUL);
|
|
123 | 123 |
v.setShowInfo(showInfo); |
124 | 124 |
return v; |
125 | 125 |
} |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.impl/src/main/java/org/gvsig/raster/georeferencing/swing/impl/view/ZoomPanelImpl.java | ||
---|---|---|
53 | 53 |
* de ser false esta esquina ser?a de m?nimo X y m?nimo Y. |
54 | 54 |
* @param v |
55 | 55 |
*/ |
56 |
public void setMinxMaxyUL(boolean v) { |
|
56 |
/*public void setMinxMaxyUL(boolean v) {
|
|
57 | 57 |
getCanvas().setMinxMaxyUL(v); |
58 |
} |
|
58 |
}*/
|
|
59 | 59 |
|
60 | 60 |
/** |
61 | 61 |
* Activa o desactiva el mostrado de informaci?n |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.impl/src/main/java/org/gvsig/raster/georeferencing/swing/impl/view/CanvasZone.java | ||
---|---|---|
76 | 76 |
* Informa de que la esquina superior izquierda corresponde con el valor de m?nimo X y |
77 | 77 |
* m?ximo Y. En caso de ser false esta esquina ser?a de m?nimo X y m?nimo Y. |
78 | 78 |
*/ |
79 |
private boolean minxMaxyUL = true; |
|
79 |
//private boolean minxMaxyUL = true;
|
|
80 | 80 |
|
81 | 81 |
private Color backgroundColor = Color.BLACK; |
82 | 82 |
private Color textColor = Color.RED; |
... | ... | |
140 | 140 |
int h = getVisibleRect().height; |
141 | 141 |
double cx = extent.getMinX() + ((p.getX() * extent.getWidth()) / w); |
142 | 142 |
double cy = 0; |
143 |
if(minxMaxyUL) //Cuando las Y decrecen de arriba a abajo |
|
143 |
//if(minxMaxyUL) //Cuando las Y decrecen de arriba a abajo
|
|
144 | 144 |
cy = extent.getMaxY() - (p.getY() * extent.getHeight()) / h; |
145 |
else //Cuando las Y crecen de arriba a abajo |
|
146 |
cy = extent.getMinY() + (p.getY() * extent.getHeight()) / h; |
|
145 |
//else //Cuando las Y crecen de arriba a abajo
|
|
146 |
//cy = extent.getMinY() + (p.getY() * extent.getHeight()) / h;
|
|
147 | 147 |
return new Point2D.Double(cx, cy); |
148 | 148 |
} |
149 | 149 |
|
... | ... | |
157 | 157 |
int h = getVisibleRect().height; |
158 | 158 |
double cx = ((p.getX() - extent.getMinX()) * w) / extent.getWidth(); |
159 | 159 |
double cy = 0; |
160 |
if(minxMaxyUL) //Cuando las Y decrecen de arriba a abajo |
|
160 |
//if(minxMaxyUL) //Cuando las Y decrecen de arriba a abajo
|
|
161 | 161 |
cy = ((extent.getMaxY() - p.getY()) * h) / extent.getHeight(); |
162 |
else //Cuando las Y crecen de arriba a abajo |
|
163 |
cy = ((p.getY() - extent.getMinY()) * h) / extent.getHeight(); |
|
162 |
//else //Cuando las Y crecen de arriba a abajo
|
|
163 |
//cy = ((p.getY() - extent.getMinY()) * h) / extent.getHeight();
|
|
164 | 164 |
return new Point2D.Double(cx, cy); |
165 | 165 |
} |
166 | 166 |
|
... | ... | |
553 | 553 |
* de ser false esta esquina ser?a de m?nimo X y m?nimo Y. |
554 | 554 |
* @param v |
555 | 555 |
*/ |
556 |
public void setMinxMaxyUL(boolean v) { |
|
556 |
/*public void setMinxMaxyUL(boolean v) {
|
|
557 | 557 |
this.minxMaxyUL = v; |
558 |
} |
|
558 |
}*/
|
|
559 | 559 |
|
560 | 560 |
/** |
561 | 561 |
* Obtiene el valor para el flag minxMaxyUL. Este flag informa de que la esquina |
... | ... | |
563 | 563 |
* de ser false esta esquina ser?a de m?nimo X y m?nimo Y. |
564 | 564 |
* @param v |
565 | 565 |
*/ |
566 |
public boolean getMinxMaxyUL() { |
|
566 |
/*public boolean getMinxMaxyUL() {
|
|
567 | 567 |
return minxMaxyUL; |
568 |
} |
|
568 |
}*/
|
|
569 | 569 |
|
570 | 570 |
/** |
571 | 571 |
* Asigna el color del texto |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.impl/src/main/java/org/gvsig/raster/georeferencing/swing/impl/view/synchronize/SynchronizedViewsImpl.java | ||
---|---|---|
377 | 377 |
} |
378 | 378 |
|
379 | 379 |
public void createGCPLayers() { |
380 |
viewRasterGCPs = new GCPsGraphicLayer(GPGraphic.PIXEL, toolListener); |
|
381 |
viewRasterGCPs.setCanvas(viewRaster.getCanvas()); |
|
382 |
viewRaster.addGraphicLayer(viewRasterGCPs); |
|
383 |
//viewRasterRequestManager.setGCPsGraphicLayer(viewRasterGCPs); |
|
380 |
if(viewRaster != null) { |
|
381 |
viewRasterGCPs = new GCPsGraphicLayer(GPGraphic.PIXEL, toolListener); |
|
382 |
viewRasterGCPs.setCanvas(viewRaster.getCanvas()); |
|
383 |
viewRaster.addGraphicLayer(viewRasterGCPs); |
|
384 |
//viewRasterRequestManager.setGCPsGraphicLayer(viewRasterGCPs); |
|
385 |
} |
|
384 | 386 |
|
385 |
viewRasterGCPsZoom = new GCPsGraphicLayer(GPGraphic.PIXEL, toolListener); |
|
386 |
viewRasterGCPsZoom.setCanvas(zoomRaster.getCanvas()); |
|
387 |
zoomRaster.addGraphicLayer(viewRasterGCPsZoom); |
|
388 |
//zoomRasterRequestManager.setGCPsGraphicLayer(viewRasterGCPsZoom); |
|
387 |
if(zoomRaster != null) { |
|
388 |
viewRasterGCPsZoom = new GCPsGraphicLayer(GPGraphic.PIXEL, toolListener); |
|
389 |
viewRasterGCPsZoom.setCanvas(zoomRaster.getCanvas()); |
|
390 |
zoomRaster.addGraphicLayer(viewRasterGCPsZoom); |
|
391 |
//zoomRasterRequestManager.setGCPsGraphicLayer(viewRasterGCPsZoom); |
|
392 |
} |
|
389 | 393 |
|
390 |
viewMapGCPs = new GCPsGraphicLayer(GPGraphic.MAP, toolListener); |
|
391 |
viewMapGCPs.setCanvas(viewMap.getCanvas()); |
|
392 |
viewMap.addGraphicLayer(viewMapGCPs); |
|
393 |
//viewMapRequestManager.setGCPsGraphicLayer(viewMapGCPs); |
|
394 |
if(viewMap != null) { |
|
395 |
viewMapGCPs = new GCPsGraphicLayer(GPGraphic.MAP, toolListener); |
|
396 |
viewMapGCPs.setCanvas(viewMap.getCanvas()); |
|
397 |
viewMap.addGraphicLayer(viewMapGCPs); |
|
398 |
//viewMapRequestManager.setGCPsGraphicLayer(viewMapGCPs); |
|
399 |
} |
|
394 | 400 |
|
395 |
viewMapGCPsZoom = new GCPsGraphicLayer(GPGraphic.MAP, toolListener); |
|
396 |
viewMapGCPsZoom.setCanvas(zoomMap.getCanvas()); |
|
397 |
zoomMap.addGraphicLayer(viewMapGCPsZoom); |
|
398 |
//zoomMapRequestManager.setGCPsGraphicLayer(viewMapGCPsZoom); |
|
401 |
if(zoomMap != null) { |
|
402 |
viewMapGCPsZoom = new GCPsGraphicLayer(GPGraphic.MAP, toolListener); |
|
403 |
viewMapGCPsZoom.setCanvas(zoomMap.getCanvas()); |
|
404 |
zoomMap.addGraphicLayer(viewMapGCPsZoom); |
|
405 |
//zoomMapRequestManager.setGCPsGraphicLayer(viewMapGCPsZoom); |
|
406 |
} |
|
399 | 407 |
} |
400 | 408 |
|
401 | 409 |
/** |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.impl/src/main/java/org/gvsig/raster/georeferencing/swing/impl/view/ViewPanelImpl.java | ||
---|---|---|
85 | 85 |
* de ser false esta esquina ser?a de m?nimo X y m?nimo Y. |
86 | 86 |
* @param v |
87 | 87 |
*/ |
88 |
public void setMinxMaxyUL(boolean v) { |
|
88 |
/*public void setMinxMaxyUL(boolean v) {
|
|
89 | 89 |
getCanvas().setMinxMaxyUL(v); |
90 |
} |
|
90 |
}*/
|
|
91 | 91 |
|
92 | 92 |
/** |
93 | 93 |
* Asigna un nuevo centro de visualizaci?n. Vuelve a realizar la petici?n |
... | ... | |
231 | 231 |
LoggerFactory.getLogger(ViewPanelImpl.class).debug("Redimensi?n de las ventanas. La altura de estas es menor que cero", this, ex); |
232 | 232 |
return r; |
233 | 233 |
} |
234 |
if(zoomPixelControl.getCanvas().getMinxMaxyUL()) |
|
234 |
//if(zoomPixelControl.getCanvas().getMinxMaxyUL())
|
|
235 | 235 |
r = new Rectangle2D.Double(x, y + h, w, h); |
236 |
else |
|
237 |
r = new Rectangle2D.Double(x, y - h, w, h); |
|
236 |
//else
|
|
237 |
//r = new Rectangle2D.Double(x, y - h, w, h);
|
|
238 | 238 |
Point2D p1 = zoomPixelControl.getCanvas().viewCoordsToWorld(new Point2D.Double(r.getX(), r.getY())); |
239 | 239 |
Point2D p2 = zoomPixelControl.getCanvas().viewCoordsToWorld(new Point2D.Double(r.getX() + r.getWidth(), r.getY() + r.getHeight())); |
240 | 240 |
return new Rectangle2D.Double( Math.min(p1.getX(), p2.getX()), |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.impl/src/main/java/org/gvsig/raster/georeferencing/swing/impl/tool/ZoomRectangleTool.java | ||
---|---|---|
152 | 152 |
|
153 | 153 |
Point2D pInit = canvas.viewCoordsToWorld(new Point2D.Double(x, y)); |
154 | 154 |
Point2D pEnd = canvas.viewCoordsToWorld(new Point2D.Double(x + w, y + h)); |
155 |
if(canvas.getMinxMaxyUL()) |
|
155 |
/*if(canvas.getMinxMaxyUL())
|
|
156 | 156 |
result = new Rectangle2D.Double(pInit.getX(), pEnd.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY())); |
157 |
else |
|
158 |
result = new Rectangle2D.Double(pInit.getX(), pInit.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY()));
|
|
157 |
else*/
|
|
158 |
result = new Rectangle2D.Double(pInit.getX(), pEnd.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY()));
|
|
159 | 159 |
initPoint = null; |
160 | 160 |
x = y = w = h = 0; |
161 | 161 |
for (int i = 0; i < listeners.size(); i++) |
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.impl/src/main/java/org/gvsig/raster/georeferencing/swing/impl/tool/PanTool.java | ||
---|---|---|
108 | 108 |
|
109 | 109 |
Point2D pInit = canvas.viewCoordsToWorld(new Point2D.Double(distance.getX(), distance.getY())); |
110 | 110 |
Point2D pEnd = canvas.viewCoordsToWorld(new Point2D.Double(distance.getX() + canvas.getVisibleRect().width, distance.getY() + canvas.getVisibleRect().height)); |
111 |
if(canvas.getMinxMaxyUL()) |
|
111 |
//if(canvas.getMinxMaxyUL())
|
|
112 | 112 |
result = new Rectangle2D.Double(pInit.getX(), pEnd.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY())); |
113 |
else |
|
114 |
result = new Rectangle2D.Double(pInit.getX(), pInit.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY())); |
|
113 |
//else
|
|
114 |
//result = new Rectangle2D.Double(pInit.getX(), pInit.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY()));
|
|
115 | 115 |
initPoint = null; |
116 | 116 |
for (int i = 0; i < listeners.size(); i++) |
117 | 117 |
((ToolListener)listeners.get(i)).endAction(new ToolEvent(this)); |
Also available in: Unified diff