Revision 7157 trunk/extensions/extPublish/src/com/iver/cit/gvsig/publish/servers/mapserver/MapServerPublishControler.java

View differences:

MapServerPublishControler.java
40 40
 *   +34 963163400
41 41
 *   dac@iver.es
42 42
 */
43
import java.awt.geom.Rectangle2D;
43 44
import java.io.File;
44 45
import java.io.IOException;
45 46
import java.util.ArrayList;
......
55 56
import org.gvsig.remoteservices.conf.mapserver.MapServer.WebMap;
56 57
import org.gvsig.remoteservices.conf.mapserver.test.AddFieldToDBF;
57 58

  
59
import com.iver.cit.gvsig.fmap.DriverException;
58 60
import com.iver.cit.gvsig.fmap.drivers.RasterDriver;
59
import com.iver.cit.gvsig.fmap.drivers.raster.CmsRasterDriver;
60 61
import com.iver.cit.gvsig.fmap.layers.FLayer;
61 62
import com.iver.cit.gvsig.fmap.layers.FLayers;
62 63
import com.iver.cit.gvsig.fmap.layers.FLyrRaster;
......
76 77
 * 
77 78
 */
78 79
public class MapServerPublishControler extends PublishControler{
79
	
80
	private String dataPath = null; //"C:/ms4w/test/";
81
	private String fileIndex = null; //indexDir + "index.shp";
82
	private String gdalPath = "C:/Archivos de programa/FWTools1.0.5/bin/";
83
	private String cmd = "\""+gdalPath+"gdaltindex\"";
84
	private ConfigFile map = null;
80 85
	/**
81 86
	 * Constructor
82 87
	 */
......
113 118
	private ConfigFile publish(String onlineResource, String path, String mapFile,
114 119
			String symbolsFile, String fontsFile, String ImageURL,
115 120
			String imagePath) {
121
		dataPath = path;
116 122
				
117
		ConfigFile map = getConfigFile(path);		
123
		map = getConfigFile(dataPath);		
118 124
		map.www = getWebMapVect(onlineResource,imagePath,ImageURL);
119 125

  
120 126
		for (int i = 0; i < getLayers().getLayersCount(); i++) {
......
180 186
	}
181 187
	
182 188
	private MapLayer publishMosaicLayer(ConfigFile config,FLayers layers) throws LayerException{
183
		MapLayer mapLayer = null;
189
		fileIndex = layers.getName().split("]")[1] + "_index.shp";
190
		MapLayer mapLayer = publishSimpleLayer(layers.getLayer(0));
191
		String[] sFiles = new String[layers.getLayersCount()];
192
		for (int i=0 ; i<sFiles.length ; i++){
193
			sFiles[i] = getRasterFile(layers.getLayer(i));
194
		}
184 195
		
185
		return mapLayer;
196
		mapLayer.name = layers.getName().split("]")[1];
197
		mapLayer.tileIndex = fileIndex;
198
		mapLayer.tileItem = "location";
199
		mapLayer.data = null;
200
		mapLayer.metadata.title = mapLayer.name;
201
		Rectangle2D extent = map.extent;
202
		/*try {
203
			extent = layers.getFullExtent();
204
		} catch (DriverException e) {
205
			throw new LayerException(LayerException.EXC_NO_DETECTED_EXTENT,e.getMessage());
206
		}*/
207
		mapLayer.metadata.setExtent(extent);
208
		generateIndex(dataPath + "/" + fileIndex,sFiles,null);
209
		return mapLayer;		
186 210
	}
187 211
	
188 212
	private MapLayer publishTimeLayer(ConfigFile config,FLayers layers) throws LayerException{
189
		MapLayer mapLayer = null;
190
		String indexDir = "C:/ms4w/test/";
191
		String fileIndex = indexDir+"index.shp";
192
		mapLayer = publishSimpleLayer(layers.getLayer(0));
213
		fileIndex = layers.getName().split("]")[1] + "_index.shp";
214
		MapLayer mapLayer = publishSimpleLayer(layers.getLayer(0));
193 215
		
194 216
		SortedSet times = new TreeSet();
195 217
		Hashtable files = new Hashtable();
......
218 240
		String[] options = sOptions.split(",");
219 241
		mapLayer.name = layers.getName().split("]")[1];
220 242
		config.www.metadata.timeFormat = options[1];
221
		mapLayer.tileIndex = "index.shp";
243
		mapLayer.tileIndex = fileIndex;
222 244
		mapLayer.tileItem = "location";
223 245
		mapLayer.data = null;
224 246
		mapLayer.metadata.title = mapLayer.name;
225 247
		mapLayer.metadata.timeDefault = options[2];
226 248
		mapLayer.metadata.timeExtent = timeExtent;
227 249
		mapLayer.metadata.timeItem = "date";	
228
		generateIndex(fileIndex,sFiles,sTimes);
250
		generateIndex(dataPath + "/" + fileIndex,sFiles,sTimes);
229 251
		return mapLayer;
230 252
	}
231 253
	
......
237 259
	}
238 260
	
239 261
	private void generateIndex(String fileIndex,String[] fNames, String[] times){
240
		String gdalPath = "C:/Archivos de programa/FWTools1.0.5/bin/";
241
		String cmd = "\""+gdalPath+"gdaltindex\"";
242 262
		String params =  fileIndex;
243 263
		for (int i=0; i<fNames.length; i++)
244 264
			params += " "+fNames[i];
......
251 271
			// TODO Auto-generated catch block
252 272
			e.printStackTrace();
253 273
		}
254
		try {
255
			Thread.sleep(200);
256
		} catch (InterruptedException e) {
257
			// TODO Auto-generated catch block
258
			e.printStackTrace();
274
		if (times != null){
275
			try {
276
				Thread.sleep(200);
277
			} catch (InterruptedException e) {
278
				// TODO Auto-generated catch block
279
				e.printStackTrace();
280
			}
281
			AddFieldToDBF dbfFile = new AddFieldToDBF();
282
			String dbfFileName = fileIndex.substring(0,fileIndex.length()-4)+".dbf";
283
			dbfFile.add(dbfFileName, "date", times);
259 284
		}
260
		AddFieldToDBF dbfFile = new AddFieldToDBF();
261
		String dbfFileName = fileIndex.substring(0,fileIndex.length()-4)+".dbf";
262
		dbfFile.add(dbfFileName, "date", times);
263 285
		System.out.println("done.");
264 286
	}
265 287
	
......
288 310
		map.mapShapePath = path;
289 311
		map.mapcrs = new CRS(getMapCtrl().getMapContext().getViewPort()
290 312
				.getProjection().getAbrev(), true);
291
		map.setExtent(getMapCtrl().getMapContext().getViewPort().getExtent());
313
		map.setExtent(getMapCtrl().getMapContext().getViewPort().getAdjustedExtent());
292 314
		return map;
293 315
	}
294 316
	

Also available in: Unified diff