[Gvsig_desarrolladores] Consulta SQL sobre datos geograficos
xan das bolas
mellorqueomgs en hotmail.com
Jue Mar 8 16:17:17 CET 2007
Estoy realizando una extension para gvSIG en la que se manipula datos
geograficos de Postgis, para mi extension
estoy adaptando la extension extDataLocator, en concreto el método
getNewValues().A la hora de ejecutar la consulta
con el metodo executeQuery del Data Source, esta extensión lo vuelca a un
array de Value, pero si extraemos info de tipo
geométrico esto da un error.Me gustaria saber como hacer esto, o como
reutilizar la conexión para hacer mi propia
consulta con un DataSet etc.
Añado el código de mi método, aunque por ahora solo he estado probando
opciones y no esta legible.
Muchas gracias.
private Value[] getGeometryForAttributeVector(String attribute) {
AlphanumericData lyr = (AlphanumericData)layerToZoom;
DataSource ds;
Value[] newValues = null;
if (fieldToZoomIndex < 0)
return null;
try {
ds = lyr.getRecordset();
System.out.println("select the_geom " +
" from " + ds.getName() +
" where " + (String)jComboBox1.getSelectedItem()+" = '"+attribute+"'
;");
String sql = ("select the_geom " +
" from " + ds.getName() +
" where " + (String)jComboBox1.getSelectedItem()+" = '"+attribute+"'
;");
ds = ds.getDataSourceFactory().executeSQL(sql,
DataSourceFactory.AUTOMATIC_OPENING);
Vector vector=null;
for (int i=0;i<ds.getRowCount();i++) {
System.out.println("**"+ds.getFieldName(i));
//System.out.println("**"+(PGgeometry)ds.getFieldValue(i,0));
vector.add((PGgeometry)ds.getFieldValue(i,0));
//newValues[i] = ds.getFieldValue(i, 0);
}
} catch (DriverException ee) {
// TODO Auto-generated catch block
ee.printStackTrace();
} catch (com.hardcode.gdbms.engine.data.driver.DriverException eee)
{
// TODO Auto-generated catch block
eee.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DriverLoadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SemanticException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (EvaluationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("***********"+newValues.length+"**********");
System.out.println("***********"+newValues[0]+"**********");
return newValues;
}
_________________________________________________________________
Moda para esta temporada. Ponte al día de todas las tendencias.
http://www.msn.es/Mujer/moda/default.asp
Más información sobre la lista de distribución gvSIG_desarrolladores