Revision 14927
import/ext3D/trunk/ext3D/src/com/iver/ai2/gvsig3d/cacheservices/FLayerCacheService.java | ||
---|---|---|
30 | 30 |
private Extent _extent; |
31 | 31 |
private Rectangle2D _lyrExtentRect; |
32 | 32 |
private FLayer _layer; |
33 |
public FLayerCacheService(Planet planet, String name, FLayer layer) { |
|
33 |
private IProjection _viewProj; |
|
34 |
|
|
35 |
public FLayerCacheService(Planet planet, String name, FLayer layer, IProjection viewProj) { |
|
34 | 36 |
super(planet.getPlanetName(), name); |
35 | 37 |
|
36 | 38 |
_layer = layer; |
39 |
_viewProj = viewProj; |
|
37 | 40 |
_loadFailed = true; |
38 | 41 |
|
39 | 42 |
int cacheType = CacheService.GLOBAL; |
... | ... | |
43 | 46 |
cacheType += PLANE; |
44 | 47 |
setCacheType(cacheType); |
45 | 48 |
|
46 |
try { // find extent as projected to
|
|
49 |
try { |
|
47 | 50 |
_lyrExtentRect = _layer.getFullExtent(); |
48 | 51 |
} |
49 | 52 |
catch (DriverException e) { |
... | ... | |
72 | 75 |
|
73 | 76 |
private Image getTileFromLayer(String fName, Rectangle2D tileExtent) |
74 | 77 |
{ |
75 |
IProjection projection = _layer.getProjection(); |
|
76 |
|
|
77 |
projection = CRSFactory.getCRS("EPSG:4326"); // para vista esferica |
|
78 |
|
|
79 | 78 |
BufferedImage image = new BufferedImage(256, 256, BufferedImage.TYPE_INT_ARGB); |
80 |
ViewPort vp = new ViewPort(projection);
|
|
79 |
ViewPort vp = new ViewPort(_viewProj);
|
|
81 | 80 |
|
82 | 81 |
vp.setExtent(tileExtent); // the real extent of the tile |
83 |
vp.setImageSize(new Dimension(256, 256)); |
|
84 |
vp.refreshExtent(); // ?? |
|
82 |
vp.setAdjustable(false); |
|
83 |
int size = getTileSize(); |
|
84 |
vp.setImageSize(new Dimension(size, size)); |
|
85 | 85 |
|
86 | 86 |
Graphics2D graphics = image.createGraphics(); |
87 | 87 |
Color backgColor = new Color(255, 255, 255, 0); // transparent background |
88 | 88 |
graphics.setColor(backgColor); |
89 |
graphics.fillRect(0, 0, 256, 256);
|
|
89 |
graphics.fillRect(0, 0, size, size);
|
|
90 | 90 |
|
91 | 91 |
// CancelDraw canceldraw = new MapControl.CancelDraw(); |
92 | 92 |
// canceldraw.setCanceled(false); |
... | ... | |
102 | 102 |
try { |
103 | 103 |
File file = new File(fName); |
104 | 104 |
String format = getFileExtension().substring(1); |
105 |
//boolean res = ImageIO.write(image, format, file); |
|
106 | 105 |
saveCachedFile(image, format, file); |
107 |
//System.out.println("saved: "+res); |
|
108 | 106 |
} catch (IOException e1) { |
109 | 107 |
e1.printStackTrace(); |
110 | 108 |
return null; |
Also available in: Unified diff