Statistics
| Revision:

svn-gvsig-desktop / trunk / extensions / extPublish / src / org / gvsig / remoteservices / conf / mapserver / test / MapServerTestWithTime.java @ 7125

History | View | Annotate | Download (4.1 KB)

1
package org.gvsig.remoteservices.conf.mapserver.test;
2

    
3
import java.io.File;
4
import java.io.IOException;
5

    
6
import org.gvsig.remoteservices.conf.mapserver.MapServer;
7
import org.gvsig.remoteservices.conf.mapserver.MapServer.CRS;
8
import org.gvsig.remoteservices.conf.mapserver.MapServer.ConfigFile;
9
import org.gvsig.remoteservices.conf.mapserver.MapServer.MetadataLayer;
10
import org.gvsig.remoteservices.conf.mapserver.MapServer.MetadataWeb;
11
import org.gvsig.remoteservices.conf.mapserver.MapServer.RasterLayer;
12
import org.gvsig.remoteservices.conf.mapserver.MapServer.WebMap;
13

    
14
public class MapServerTestWithTime {
15
        public static void test() {
16
                String cgiURL = "http://gruposigp1:81/cgi-bin/mapserv.exe";
17
                String mapFileName="c:/zambiawms/conf/"+"prbtime.map";
18
                String msHome = "C:/ms4w/mapserver";
19
                String msData = msHome + "/data";
20
                
21
                mapFileName = msHome + "/mapas"+"/prbtime.map";
22
                
23
                String serviceURL = cgiURL+"?map="+mapFileName;
24
                String imagePath = "../tmp/";
25
            String imageURL = "../tmp/";
26
                String raster1 = "G:/sercart/carto/landsat/Europa/" +
27
                        "p199r34_5t19870626.TM-EarthSat-Orthorectified/" +
28
                        "p199r34_5t19870626_nn1.tif";
29
                String time1 = "1987-06-26";
30
                String raster2 = "G:/sercart/carto/landsat/Europa/" +
31
                        "p199r034_7x20011201.ETM-EarthSat-Orthorectified/" +
32
                        "p199r034_7t20011201_z30_nn10.tif";
33
                String time2 = "2001-12-01";
34
                
35
                String fileIndex = msData+"/index.shp";
36

    
37
                String [] files = {raster1, raster2};
38
                String [] times = {time1, time2};
39
                generateIndex(fileIndex, files, times);
40
                
41
                System.out.println("Generating .map ...");
42
                MapServer.ConfigFile map = new MapServer.ConfigFile();
43
                map.mapName= "MAPSERVER_TIME_TEST";
44
                map.mapStatus="ON";
45
                map.mapUnits="METERS";
46
                map.mapShapePath = msData; 
47
                map.mapcrs= new MapServer.CRS("EPSG:23030",true);
48
                map.setExtent(499434,4037082,745189,4258014);
49
                
50
                MapServer.WebMap web = new MapServer.WebMap();
51
                web.imagepath=imagePath;
52
                web.imageurl=imageURL;
53
                web.metadata=new MapServer.MetadataWeb();
54
                web.metadata.crs= new MapServer.CRS("EPSG:23030",false);
55
                web.metadata.title="test time";
56
                web.metadata.onlineresource=serviceURL;
57
                map.www=web;
58

    
59
                map.www.metadata.timeFormat = "YYYY-MM-DD";
60

    
61
                MapServer.RasterLayer capa = new MapServer.RasterLayer();
62
                capa.name = "p199r034";
63
                capa.title = "Landsat 5-7 scenes p199r034";
64
                capa.type="RASTER";
65
                capa.extent = null;
66
                capa.metadata=new MapServer.MetadataLayer();
67
                map.setExtent(499434,4037082,745189,4258014);
68
                capa.metadata.title = "Landsat 5-7 scenes p199r034";
69
                capa.metadata.crs = new CRS("EPSG:23030", false);
70
                //capa.layercrs= new MapServer.CRS("EPSG:23030",true);
71

    
72
                capa.tileIndex="index.shp";
73
                capa.tileItem = "location";
74
                capa.metadata.timeDefault=time2;
75
                capa.metadata.timeExtent=time1+","+time2;
76
                capa.metadata.timeItem="date";
77
                
78
                map.layers.add(capa);
79
                
80
                map.generate(mapFileName);
81

    
82
                System.out.println("done.");
83
        }
84
        
85
        private static void generateIndex(String fileIndex, String[] fNames, String[] times) {
86
                String cmd = "\"c:/Program Files/FWTools0.9.8sid/bin/gdaltindex.exe\"";
87
                String params =  fileIndex;
88
                for (int i=0; i<fNames.length; i++)
89
                        params += " "+fNames[i];
90
                System.out.println("Generating index.shp ...");
91
                try {
92
                        deleteIndexFile(fileIndex);
93
                        System.out.println(cmd+" "+params);
94
                        Runtime.getRuntime().exec(cmd+" "+params);
95
                } catch (IOException e) {
96
                        // TODO Auto-generated catch block
97
                        e.printStackTrace();
98
                }
99
                try {
100
                        Thread.sleep(100);
101
                } catch (InterruptedException e) {
102
                        // TODO Auto-generated catch block
103
                        e.printStackTrace();
104
                }
105
                AddFieldToDBF dbfFile = new AddFieldToDBF();
106
                String dbfFileName = fileIndex.substring(0,fileIndex.length()-4)+".dbf";
107
                dbfFile.add(dbfFileName, "date", times);
108
                System.out.println("done.");
109
        }
110
        
111
        private static void deleteIndexFile(String fileIndex) {
112
                File f = new File(fileIndex);
113
                if (f.exists()) {
114
                        String root = fileIndex.substring(0,fileIndex.length()-4);
115
                        String [] exts = {"shp", "dbf", "shx"};
116
                        for (int i=0; i<exts.length; i++) {
117
                                f = new File(root+"."+exts[i]);
118
                                f.delete();
119
                        }
120
                }
121
        }        
122
        public MapServerTestWithTime() {
123
                test();
124
        }
125
        
126
        public static void main(String args[]) {
127
                new MapServerTestWithTime();
128
        }
129

    
130
}