root / trunk / applications / appgvSIG / src / com / iver / cit / gvsig / DEMO / PruebasGT2.java @ 7738
History | View | Annotate | Download (11.2 KB)
1 | 623 | luisw | /*
|
---|---|---|---|
2 | * Created on 22-dic-2004
|
||
3 | */
|
||
4 | 1103 | fjp | /* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
|
5 | *
|
||
6 | * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
|
||
7 | *
|
||
8 | * This program is free software; you can redistribute it and/or
|
||
9 | * modify it under the terms of the GNU General Public License
|
||
10 | * as published by the Free Software Foundation; either version 2
|
||
11 | * of the License, or (at your option) any later version.
|
||
12 | *
|
||
13 | * This program is distributed in the hope that it will be useful,
|
||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
16 | * GNU General Public License for more details.
|
||
17 | *
|
||
18 | * You should have received a copy of the GNU General Public License
|
||
19 | * along with this program; if not, write to the Free Software
|
||
20 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA.
|
||
21 | *
|
||
22 | * For more information, contact:
|
||
23 | *
|
||
24 | * Generalitat Valenciana
|
||
25 | * Conselleria d'Infraestructures i Transport
|
||
26 | * Av. Blasco Ib??ez, 50
|
||
27 | * 46010 VALENCIA
|
||
28 | * SPAIN
|
||
29 | *
|
||
30 | * +34 963862235
|
||
31 | * gvsig@gva.es
|
||
32 | * www.gvsig.gva.es
|
||
33 | *
|
||
34 | * or
|
||
35 | *
|
||
36 | * IVER T.I. S.A
|
||
37 | * Salamanca 50
|
||
38 | * 46005 Valencia
|
||
39 | * Spain
|
||
40 | *
|
||
41 | * +34 963163400
|
||
42 | * dac@iver.es
|
||
43 | */
|
||
44 | 623 | luisw | package com.iver.cit.gvsig.DEMO; |
45 | |||
46 | 631 | fjp | import java.awt.Color; |
47 | 623 | luisw | import java.awt.event.ActionEvent; |
48 | import java.awt.event.ActionListener; |
||
49 | 631 | fjp | import java.io.FileNotFoundException; |
50 | 623 | luisw | import java.io.IOException; |
51 | 2943 | fjp | import java.util.HashMap; |
52 | 623 | luisw | import java.util.Map; |
53 | |||
54 | import javax.swing.JOptionPane; |
||
55 | |||
56 | 631 | fjp | import org.geotools.data.DataSourceException; |
57 | 623 | luisw | import org.geotools.data.DataStore; |
58 | 631 | fjp | import org.geotools.data.FeatureSource; |
59 | 2943 | fjp | import org.geotools.data.postgis.PostgisDataStore; |
60 | import org.geotools.data.postgis.PostgisDataStoreFactory; |
||
61 | 631 | fjp | import org.geotools.map.DefaultMapLayer; |
62 | import org.geotools.map.MapLayer; |
||
63 | import org.geotools.styling.Style; |
||
64 | import org.geotools.styling.StyleBuilder; |
||
65 | |||
66 | 6878 | cesar | import com.iver.cit.gvsig.fmap.MapContext; |
67 | 631 | fjp | import com.iver.cit.gvsig.fmap.layers.CancelationException; |
68 | import com.iver.cit.gvsig.fmap.layers.FLyrGT2; |
||
69 | 2943 | fjp | import com.iver.cit.gvsig.fmap.layers.FLyrGT2_old; |
70 | 631 | fjp | import com.vividsolutions.jts.geom.LineString; |
71 | import com.vividsolutions.jts.geom.MultiLineString; |
||
72 | import com.vividsolutions.jts.geom.MultiPoint; |
||
73 | import com.vividsolutions.jts.geom.Point; |
||
74 | 623 | luisw | |
75 | /**
|
||
76 | * Pruebas de capas GT2 (ArcSDE, etc), hechas por Fran, sacadas del
|
||
77 | * CommandListener
|
||
78 | * @author Luis W. Sevilla (sevilla_lui@gva.es)
|
||
79 | */
|
||
80 | public class PruebasGT2 implements ActionListener { |
||
81 | 2943 | fjp | static PostgisDataStoreFactory postGisFactory = new PostgisDataStoreFactory(); |
82 | 706 | fjp | // static ArcSDEDataStoreFactory arcSdeFactory = new ArcSDEDataStoreFactory();
|
83 | 623 | luisw | |
84 | Map remote;
|
||
85 | 6878 | cesar | private MapContext m_Mapa;
|
86 | 623 | luisw | |
87 | 2943 | fjp | |
88 | 623 | luisw | /**
|
89 | 2943 | fjp | * Returns the parameters
|
90 | */
|
||
91 | public HashMap getParams() { |
||
92 | HashMap params = new HashMap(); |
||
93 | // Param[] dbParams = postGisFactory.getParametersInfo();
|
||
94 | params.put("dbtype", "postgis"); //$NON-NLS-1$ |
||
95 | params.put("host", "localhost"); |
||
96 | params.put("port", new Integer(5432)); |
||
97 | |||
98 | params.put("database", "latin1"); |
||
99 | |||
100 | params.put("user", "postgres"); |
||
101 | params.put("passwd", "aquilina"); |
||
102 | |||
103 | params.put("wkb enabled", Boolean.TRUE); |
||
104 | params.put("loose bbox", Boolean.TRUE); |
||
105 | |||
106 | params.put("namespace", ""); //$NON-NLS-1$ |
||
107 | |||
108 | return params;
|
||
109 | } |
||
110 | |||
111 | /**
|
||
112 | 623 | luisw | *
|
113 | */
|
||
114 | protected void addLayerGT2_Shp() { |
||
115 | /* JFileChooser fileChooser = new JFileChooser(); // lastFolder);
|
||
116 | fileChooser.addChoosableFileFilter(new SimpleFileFilter("shp", "Shapefile (*.shp)"));
|
||
117 | |||
118 | int result = fileChooser.showOpenDialog(theView);
|
||
119 | |||
120 | if (result == JFileChooser.APPROVE_OPTION) {
|
||
121 | File file = fileChooser.getSelectedFile();
|
||
122 | // lastFolder = file.getParentFile();
|
||
123 | |||
124 | try {
|
||
125 | // Load the file
|
||
126 | URL url = file.toURL();
|
||
127 | |||
128 | DataStore store;
|
||
129 | |||
130 | // Para shapes
|
||
131 | store = new ShapefileDataStore(url);
|
||
132 | |||
133 | loadLayer(store, store.getTypeNames()[0]);
|
||
134 | } catch (Throwable t) {
|
||
135 | JOptionPane.showMessageDialog(null, "An error occurred while loading the file",
|
||
136 | "Demo GT2", JOptionPane.ERROR_MESSAGE);
|
||
137 | t.printStackTrace();
|
||
138 | }
|
||
139 | } */
|
||
140 | } |
||
141 | 1691 | fjp | protected void addLayer_PostGIS() |
142 | { |
||
143 | 2268 | fjp | /* String nomTabla = JOptionPane.showInputDialog(null, "?Nombre de la tabla a cargar?", "provin");
|
144 | 2183 | fernando | PostGisDriver driver = new PostGisDriver();
|
145 | 1691 | fjp | String dburl = "jdbc:postgresql://localhost/latin1";
|
146 | String dbuser = "postgres";
|
||
147 | String dbpass = "aquilina";
|
||
148 | 1827 | fjp | String fields = "ASBINARY(the_geom, 'XDR') as the_geom, ND_4, NOM_PROVIN";
|
149 | 1691 | fjp | String whereClause = "";
|
150 | |||
151 | |||
152 | Connection conn;
|
||
153 | try {
|
||
154 | Class.forName("org.postgresql.Driver");
|
||
155 | conn = DriverManager.getConnection(dburl, dbuser, dbpass);
|
||
156 | conn.setAutoCommit(false);
|
||
157 | 1862 | fjp | driver.setData(conn, nomTabla, fields, whereClause, -1);
|
158 | 1691 | fjp | FLayer lyr = LayerFactory.createDBLayer(driver, nomTabla, null);
|
159 | m_Mapa.getLayers().addLayer(lyr);
|
||
160 | } catch (SQLException e) {
|
||
161 | // TODO Auto-generated catch block
|
||
162 | e.printStackTrace();
|
||
163 | } catch (ClassNotFoundException e) {
|
||
164 | // TODO Auto-generated catch block
|
||
165 | e.printStackTrace();
|
||
166 | }
|
||
167 | 2268 | fjp | */
|
168 | 1691 | fjp | } |
169 | 2183 | fernando | protected void addLayer_ArcSDE_propio() |
170 | { |
||
171 | 2277 | vcaballero | /* String nomTabla = "vias"; //JOptionPane.showInputDialog(null, "?Nombre de la tabla a cargar?", "vias");
|
172 | 2183 | fernando | ArcSdeDriver driver = new ArcSdeDriver();
|
173 | String dbHost = "Alvaro";
|
||
174 | String dbuser = "sde";
|
||
175 | String dbpass = "sde";
|
||
176 | // String[] fields = {"Shape", "NOM_PROVIN"};
|
||
177 | String[] fields = null; //{"Shape", "RD_5", "RD_11"};
|
||
178 | int instance = 5151;
|
||
179 | String database = "sigespa";
|
||
180 | |||
181 | String whereClause = "";
|
||
182 | |||
183 | |||
184 | driver.setData(dbHost, instance, database, dbuser, dbpass, nomTabla, fields, whereClause);
|
||
185 | FLayer lyr = LayerFactory.createArcSDELayer(nomTabla, driver, null);
|
||
186 | m_Mapa.getLayers().addLayer(lyr);
|
||
187 | 2277 | vcaballero | */
|
188 | 2183 | fernando | } |
189 | |||
190 | 1749 | fjp | protected void addLayer_mySQL() |
191 | { |
||
192 | 2268 | fjp | /* String nomTabla = JOptionPane.showInputDialog(null, "?Nombre de la tabla a cargar?", "provin");
|
193 | 2183 | fernando | MySQLDriver driver = new MySQLDriver();
|
194 | 1749 | fjp | String dburl = "jdbc:mysql://localhost/test";
|
195 | String dbuser = "root";
|
||
196 | String dbpass = "aquilina";
|
||
197 | 1862 | fjp | String fields = "ASBINARY(ogc_geom) as the_geom, ID, NOM_PROVIN, ND_4, ND_5, ND_14, AREA";
|
198 | // String fields = "ASBINARY(ogc_geom) as the_geom, ID, RD_5, RD_11";
|
||
199 | 1749 | fjp | String whereClause = "";
|
200 | |||
201 | |||
202 | Connection conn;
|
||
203 | try {
|
||
204 | Class.forName("com.mysql.jdbc.Driver");
|
||
205 | // Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/test?user=monty&password=greatsqldb");
|
||
206 | |||
207 | conn = DriverManager.getConnection(dburl, dbuser, dbpass);
|
||
208 | conn.setAutoCommit(false);
|
||
209 | 1862 | fjp | driver.setData(conn, nomTabla, fields, whereClause, 2);
|
210 | 1749 | fjp | FLayer lyr = LayerFactory.createDBLayer(driver, nomTabla, null);
|
211 | m_Mapa.getLayers().addLayer(lyr);
|
||
212 | } catch (SQLException e) {
|
||
213 | // TODO Auto-generated catch block
|
||
214 | e.printStackTrace();
|
||
215 | } catch (ClassNotFoundException e) {
|
||
216 | // TODO Auto-generated catch block
|
||
217 | e.printStackTrace();
|
||
218 | }
|
||
219 | 2268 | fjp | */
|
220 | 1749 | fjp | } |
221 | |||
222 | 623 | luisw | protected void addLayerGT2_PostGIS() |
223 | { |
||
224 | 2943 | fjp | String nomTabla = JOptionPane.showInputDialog(null, "?Nombre de la tabla a cargar?", "provin"); |
225 | 1691 | fjp | |
226 | 2943 | fjp | remote = getParams(); |
227 | /* remote.put("dbtype","postgis");
|
||
228 | 1691 | fjp | remote.put("host","localhost"); //Jos? Miguel
|
229 | 623 | luisw | remote.put("port", new Integer(5432));
|
230 | 1691 | fjp | remote.put("database", "latin1");
|
231 | remote.put("user", "postgres");
|
||
232 | remote.put("passwd", "aquilina");
|
||
233 | 623 | luisw | remote.put("charset", "");
|
234 | 2943 | fjp | remote.put("namespace", ""); */
|
235 | 623 | luisw | |
236 | 2943 | fjp | PostgisDataStore store; |
237 | 623 | luisw | try {
|
238 | 2943 | fjp | store = (PostgisDataStore) postGisFactory.createDataStore(remote); |
239 | FLyrGT2 lyrGT2 = new FLyrGT2();
|
||
240 | lyrGT2.setDataStore(store); |
||
241 | lyrGT2.setTableName(nomTabla); |
||
242 | m_Mapa.getLayers().addLayer(lyrGT2); |
||
243 | // loadLayer(store, nomTabla);
|
||
244 | |||
245 | 623 | luisw | } catch (IOException e) { |
246 | // TODO Auto-generated catch block
|
||
247 | e.printStackTrace(); |
||
248 | 2943 | fjp | } |
249 | 623 | luisw | } |
250 | 1691 | fjp | |
251 | |||
252 | 631 | fjp | /**
|
253 | * Load the data from the specified dataStore and construct a {@linkPlain Context context} with
|
||
254 | * a default style.
|
||
255 | *
|
||
256 | * @param url The url of the shapefile to load.
|
||
257 | * @param name DOCUMENT ME!
|
||
258 | *
|
||
259 | * @throws IOException is a I/O error occured.
|
||
260 | * @throws DataSourceException if an error occured while reading the data source.
|
||
261 | * @throws FileNotFoundException DOCUMENT ME!
|
||
262 | */
|
||
263 | protected void loadLayer(DataStore store, String layerName) |
||
264 | throws IOException, DataSourceException { |
||
265 | 1691 | fjp | long t1 = System.currentTimeMillis(); |
266 | 631 | fjp | final FeatureSource features = store.getFeatureSource(layerName);
|
267 | 1691 | fjp | long t2 = System.currentTimeMillis(); |
268 | System.out.println("t2-t1= " + (t2-t1)); |
||
269 | 631 | fjp | // Create the style
|
270 | final StyleBuilder builder = new StyleBuilder(); |
||
271 | final Style style; |
||
272 | Class geometryClass = features.getSchema().getDefaultGeometry().getType();
|
||
273 | |||
274 | if (LineString.class.isAssignableFrom(geometryClass)
|
||
275 | || MultiLineString.class.isAssignableFrom(geometryClass)) { |
||
276 | style = builder.createStyle(builder.createLineSymbolizer()); |
||
277 | } else if (Point.class.isAssignableFrom(geometryClass) |
||
278 | || MultiPoint.class.isAssignableFrom(geometryClass)) { |
||
279 | style = builder.createStyle(builder.createPointSymbolizer()); |
||
280 | } else {
|
||
281 | style = builder.createStyle(builder.createPolygonSymbolizer(Color.ORANGE, Color.BLACK, 1)); |
||
282 | } |
||
283 | |||
284 | final MapLayer layer = new DefaultMapLayer(features, style); |
||
285 | layer.setTitle(layerName); |
||
286 | |||
287 | 2943 | fjp | FLyrGT2_old lyrGT2 = new FLyrGT2_old(layer);
|
288 | 631 | fjp | try {
|
289 | m_Mapa.getLayers().addLayer(lyrGT2); |
||
290 | } catch (CancelationException e) {
|
||
291 | // TODO Auto-generated catch block
|
||
292 | e.printStackTrace(); |
||
293 | } |
||
294 | |||
295 | } |
||
296 | |||
297 | 623 | luisw | protected void addLayerGT2_ArcSDE() |
298 | { |
||
299 | 2183 | fernando | /* remote = new HashMap();
|
300 | 623 | luisw | remote.put("dbtype","arcsde");
|
301 | 2183 | fernando | remote.put("server","Alvaro"); //Jos? Miguel
|
302 | 623 | luisw | remote.put("port", new Integer(5151));
|
303 | 2183 | fernando | remote.put("instance", "sigespa");
|
304 | 623 | luisw | remote.put("user", "sde");
|
305 | 2183 | fernando | remote.put("password", "sde");
|
306 | 623 | luisw | |
307 | |||
308 | DataStore store;
|
||
309 | 2183 | fernando | try {
|
310 | 623 | luisw | store = arcSdeFactory.createDataStore(remote);
|
311 | loadLayer(store, "SDE.VIAS");
|
||
312 | |||
313 | } catch (IOException e) {
|
||
314 | // TODO Auto-generated catch block
|
||
315 | e.printStackTrace();
|
||
316 | 706 | fjp | } */
|
317 | 623 | luisw | |
318 | |||
319 | } |
||
320 | |||
321 | 6878 | cesar | public void setMapContext(MapContext map) |
322 | 631 | fjp | { |
323 | m_Mapa = map; |
||
324 | } |
||
325 | 623 | luisw | public void actionPerformed(ActionEvent e) { |
326 | 1691 | fjp | |
327 | if (e.getActionCommand() == "ADD_GT2_POSTGIS_PROPIO") { |
||
328 | addLayer_PostGIS(); |
||
329 | } |
||
330 | 1749 | fjp | if (e.getActionCommand() == "ADD_GT2_MYSQL_PROPIO") { |
331 | addLayer_mySQL(); |
||
332 | } |
||
333 | 2183 | fernando | if (e.getActionCommand() == "ADD_GT2_ARCSDE_PROPIO") { |
334 | addLayer_ArcSDE_propio(); |
||
335 | } |
||
336 | 1691 | fjp | |
337 | 623 | luisw | if (e.getActionCommand() == "ADD_GT2_POSTGIS") { |
338 | addLayerGT2_PostGIS(); |
||
339 | } |
||
340 | if (e.getActionCommand() == "ADD_GT2_SHP") { |
||
341 | addLayerGT2_Shp(); |
||
342 | } |
||
343 | if (e.getActionCommand() == "ADD_GT2_ARCSDE") { |
||
344 | addLayerGT2_ArcSDE(); |
||
345 | } |
||
346 | } |
||
347 | } |