Revision 14935
import/ext3D/trunk/ext3D/src/com/iver/ai2/gvsig3d/map3d/layers/Layer3DProps.java | ||
---|---|---|
4 | 4 |
|
5 | 5 |
import com.iver.ai2.gvsig3d.cacheservices.FLayerCacheService; |
6 | 6 |
import com.iver.cit.gvsig.fmap.layers.FLayer; |
7 |
import com.iver.cit.gvsig.fmap.layers.FLyrWMS; |
|
7 | 8 |
import com.iver.utiles.IPersistance; |
8 | 9 |
import com.iver.utiles.XMLEntity; |
9 | 10 |
|
10 | 11 |
import es.upv.ai2.libjosg.planets.Planet; |
12 |
import es.upv.ai2.libjosg.planets.Planet.PlanetType; |
|
11 | 13 |
|
12 | 14 |
public class Layer3DProps implements IPersistance { |
13 | 15 |
|
... | ... | |
16 | 18 |
public static final int layer3DElevation = 1; |
17 | 19 |
public static final int layer3DVector = 2; |
18 | 20 |
|
19 |
public static String m_cacheDir = "c:/data/cache/"; // TEST
|
|
21 |
public static String m_cacheDir = "c:/data/cache"; // TEST |
|
20 | 22 |
|
21 | 23 |
protected int m_order; // index of layer (drawing priority) |
22 | 24 |
protected int m_type; // see type enumeration above |
25 |
protected int m_planetType; // see PlanetType: spherical or plane |
|
26 |
protected IProjection m_viewProj; |
|
23 | 27 |
protected String m_cacheName="default"; |
24 | 28 |
protected boolean m_bDirty=true; |
25 | 29 |
protected boolean m_bCacheDirty=false; |
... | ... | |
32 | 36 |
|
33 | 37 |
public void setLayer(FLayer layer) |
34 | 38 |
{ |
35 |
// TODO intialize properties from layer |
|
36 | 39 |
m_layer = layer; |
37 | 40 |
m_order = -1; // not set |
38 | 41 |
m_type = layer3DImage; |
39 |
// find unique name for cache |
|
40 |
// TODO: use full path of source or service |
|
41 |
m_cacheName = layer.getName(); |
|
42 |
|
|
43 |
// find out data type |
|
44 |
if (layer instanceof FLyrWMS) { |
|
45 |
FLyrWMS wmsLayer = (FLyrWMS)layer; |
|
46 |
String format = wmsLayer.getFormat(); |
|
47 |
if (format.compareToIgnoreCase("image/geotiff")==0) { |
|
48 |
m_type = layer3DElevation; |
|
49 |
} |
|
50 |
} |
|
42 | 51 |
} |
43 | 52 |
|
44 |
public FLayerCacheService getCacheService(Planet planet, IProjection viewProj) |
|
53 |
public void setPlanetType(int planetType) { |
|
54 |
m_planetType = planetType; |
|
55 |
} |
|
56 |
|
|
57 |
public void setViewProjection(IProjection viewProj) { |
|
58 |
m_viewProj = viewProj; |
|
59 |
} |
|
60 |
|
|
61 |
public void initCacheName() { |
|
62 |
// TODO: use full path of source or service, not just layer name |
|
63 |
|
|
64 |
String typeStr; |
|
65 |
if (m_planetType==PlanetType.SPHERICAL_MODE) |
|
66 |
typeStr = "Sph"; |
|
67 |
else |
|
68 |
typeStr = "Pla" + m_viewProj.getAbrev(); |
|
69 |
|
|
70 |
if (m_type==layer3DElevation) |
|
71 |
typeStr += "Elev"; |
|
72 |
else if (m_type==layer3DVector) |
|
73 |
typeStr += "Vect"; |
|
74 |
|
|
75 |
String layerInfo; |
|
76 |
if (m_layer instanceof FLyrWMS) { |
|
77 |
FLyrWMS wmsLayer = (FLyrWMS)m_layer; |
|
78 |
layerInfo = wmsLayer.getHost().toString() + wmsLayer.getLayerQuery(); |
|
79 |
} |
|
80 |
else { |
|
81 |
layerInfo = m_layer.getName(); |
|
82 |
} |
|
83 |
|
|
84 |
m_cacheName = typeStr + "_" + layerInfo; |
|
85 |
|
|
86 |
// eliminate banned characters |
|
87 |
m_cacheName = m_cacheName.replace('/','_'); |
|
88 |
m_cacheName = m_cacheName.replace(':','_'); |
|
89 |
m_cacheName = m_cacheName.replace('\\','_'); |
|
90 |
m_cacheName = m_cacheName.replace('*','_'); |
|
91 |
m_cacheName = m_cacheName.replace('<','_'); |
|
92 |
m_cacheName = m_cacheName.replace('>','_'); |
|
93 |
m_cacheName = m_cacheName.replace('?','_'); |
|
94 |
m_cacheName = m_cacheName.replace('"','_'); |
|
95 |
m_cacheName = m_cacheName.replace('|','_'); |
|
96 |
} |
|
97 |
|
|
98 |
public FLayerCacheService getCacheService() |
|
45 | 99 |
{ |
46 |
if (m_cacheService != null) |
|
47 |
return m_cacheService; |
|
48 |
|
|
49 |
m_cacheService = new FLayerCacheService(planet, getCacheName(), m_layer, viewProj); |
|
50 |
m_cacheService.setCacheRootDir(m_cacheDir); |
|
51 | 100 |
return m_cacheService; |
52 | 101 |
} |
53 | 102 |
|
103 |
public void setCacheService(FLayerCacheService srv) |
|
104 |
{ |
|
105 |
m_cacheService = srv; |
|
106 |
} |
|
107 |
|
|
54 | 108 |
public void setType(int type) { |
55 | 109 |
m_type = type; |
56 | 110 |
} |
... | ... | |
110 | 164 |
if (xml.contains("type")) |
111 | 165 |
m_type = xml.getIntProperty("type"); |
112 | 166 |
if (xml.contains("order")) |
113 |
m_order = xml.getIntProperty("stage");
|
|
167 |
m_order = xml.getIntProperty("order");
|
|
114 | 168 |
if (xml.contains("cacheName")) |
115 | 169 |
m_cacheName = xml.getStringProperty("cacheName"); |
116 | 170 |
} |
Also available in: Unified diff