private MemoryDataStore getCapaGeoDatabase(ReferencedEnvelope
bounds)throws Exception {
// Hay que hacer una consulta espacial a ORACLE de la siguiente
forma.
// SELECT SHAPE FROM CapaGeoDatabase A
// WHERE sdo_filter(A.shape, SDO_geometry(2003,NULL,NULL,
//
SDO_elem_info_array(1,1003,3),
//
SDO_ordinate_array(x_min,y_min, x_max,y_max))
// ) = 'TRUE';
//
// Y crearse la capa de resultados.
String nombreCapa =
indicadorSeleccionado.getSspCapasig2().getCapa();
String sqlQuery = "SELECT shape FROM "+nombreCapa+" A\n";
sqlQuery +=" WHERE SDO_FILTER(A.shape, SDO_GEOMETRY(2003,23030,NULL,\n"; // SRID = 23030 (U.T.M 30 metros)
sqlQuery +="
SDO_ELEM_INFO_ARRAY(1,1003,3),\n"; // TIPO Poligono
sqlQuery +="
SDO_ORDINATE_ARRAY("+bounds.getMinX()+","+bounds.getMinY()+","+bounds.getMaxX()+","+bounds.getMaxY()+"))\n";
sqlQuery +=") = 'TRUE'";
Connection conexion = (Connection) ManagerConsultasDAO.Instance().getOracleConnection();
Statement stm = conexion.createStatement();
stm.execute(sqlQuery);
ResultSet rs = stm.getResultSet();
MemoryDataStore ds = crearMemoryDataStore(rs);
conexion.close();
return ds;
}
Carlos Javier Martín Cano
No hay comentarios:
Publicar un comentario