[Gvsig_desarrolladores] gvsig 1.9 y oraclespatial

Juan Lucas Dominguez Rubio jldominguez en prodevelop.es
Jue Mar 4 18:28:06 CET 2010


Hola,
 
desde el punto de vista del usuario, copiar y pegar elementos entre capas no es posible, si no me equivoco.
 
Para hacerlo por código, tendrías que imitar los pasos que se dan cuando un usuario termina la edición y se procesan las modificaciones (addRow(...). etc.).
 
Una manera sencilla de plantearlo sería:
 
- el usuario selecciona un cierto número de geometrías de una capa
- después, el usuario selecciona exactamente dos capas vectoriales en el TOC
- cuando hubiera dos capas seleccionadas en el TOC y una de ellas tenga elementos seleccionados, aparecería disponible un boton que al ser pulsado, copiaría las geometrías seleccionadas a la otra capa seleccionada
 
 
Saludos,
 
 
 
Juan Lucas Domínguez Rubio
---
Prodevelop SL, Valencia (España)
Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
http://www.prodevelop.es <http://www.prodevelop.es/> 
---

________________________________

De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
Enviado el: mié 27/01/2010 11:24
Para: Lista de Desarrolladores de gvSIG
Asunto: Re: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial - Email found in subject


Buenas Juan, una vez que tengo cargada en la vista un layer, que he cogido de la bd oracle,
pongo la capa en edicion, es posible copiar una geometria e insertarla en otra capa ?
 
Gracias


El 20 de enero de 2010 17:31, Juan Lucas Dominguez Rubio <jldominguez en prodevelop.es> escribió:


	Hola, qué tipo de error es y cuándo te sucede?
	 
	La causa de esto podría ser el tema de la carga de IDs:
	 
	Puesto que una tabla puede ser muy grande, cuando el usuario añade una tabla, se lanza un hilo auxiliar que carga los IDs de los registros de la tabla y al final lanza un evento para quienes se hayan apuntado como listeners. Mientras ese hilo auxiliar no ha terminado, gvSIG sigue funcionando sin congelarse la interfaz, pero cualquier petición a esa capa obtiene una respuesta vacía (atributos puestos a valor nulo, cero geometrías, iteradores vacíos, etc).
	 
	El booleano que dice si el hilo auxiliar ha terminado es 'isNotAvailableYet' de la clase OracleSpatialDriver. No es visible desde fuera directamente, así que puedes añadirle un get y ya está.
	 
	Si quieres ser notificado cuando ese hilo ha terminado, debes usar el método:
	 
	public void addDriverEventListener(DriverEventListener listener)
	 
	de DefaultJDBCDriver y comprobar que el evento notificado es de tipo DriverEvent.DRIVER_EVENT_LOADING_END. Después de haber recibido esa notificación, la capa debe comportarse normalmente.
	 
	No sé cómo es la adaptación que estás haciendo, pero una posibilidad podría ser asociar el código que falla a una acción de usuario (por ejemplo, elegir cierto menú), y antes de intentar ejecutar eso, consultas el booleanno que te he comentado, y si la capa aún no está lista, sacas un mensaje tipo: "Aún no se puede hacer eso".
	 
	 
	Saludos,
	
	 
	Juan Lucas Domínguez Rubio
	---
	Prodevelop SL, Valencia (España)
	Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
	http://www.prodevelop.es <http://www.prodevelop.es/> 
	---

________________________________

	
	De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
	
	Enviado el: mié 20/01/2010 17:13 

	Para: Lista de Desarrolladores de gvSIG
	Asunto: Re: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial
	

	Buenas Juan,
	
	Me ha surgido un problema, cuando carga una capa a la vista, si voy probando en modo debug, carga la capa vale y despues  utilizo esta capa para hacer una serie de operaciones, pero cuando lo hago en modo ejecucion, llamo a la funcion de cargar capa y parece ser mientras se carga la capa, el hilo de la aplicacion continua pero claro al no tener los datos de la capa (porque todavia no le ha dado tiempo a cargar)da error.
	
	como puedo hacer que cuando cargue una capa recuperada de la bd y cargada en la vista, hasta que no este disponible no siga la ejecucion ??
	
	este es el codigo de cargar capa:
	IVectorialDatabaseDriver driver = (IVectorialDatabaseDriver) LayerFactory.getDM().getDriver(operacionesEducacion.getProperty("oracleSpatial"));
	                        DBLayerDefinition lyr_def = new DBLayerDefinition();                
	                        String schema = operacionesEducacion.getProperty("schema");
	                        String tableName = nombre;
	                        String fidField = operacionesEducacion.getProperty("rowid");
	                        String geomField = operacionesEducacion.getProperty("geometria");                    
	                                       
	                        Statement ps = null;
	                        
	                        ResultSet resultSet = null;
	                       
	                        operacionesEducacion op=new operacionesEducacion();
	                        Connection conn=op.abrirConexionConOracle();
	                        ps = conn.createStatement();
	                        
	                        ps.setFetchSize(50);
	                        //resultSet = ps.executeQuery("SELECT * FROM "+ tableName);
	                        DBLayerDefinition lyrDef = new DBLayerDefinition();
	                        resultSet = ps.executeQuery("SELECT * FROM "+ nombre );
	                        String[] fields=computeMetadata(resultSet);
	                       
	                        
	                        lyrDef.setName(nombre);
	                        lyrDef.setSchema(schema);
	                        lyrDef.setTableName(tableName);
	                        lyrDef.setWhereClause("");
	                        lyrDef.setFieldGeometry(geomField);
	                        lyrDef.setFieldNames(fields);
	                        lyrDef.setFieldID(fidField);
	                        lyrDef.setHost(cwp.getHost());
	                        lyrDef.setPort(Integer.parseInt(cwp.getPort()));
	                        lyrDef.setDataBase(cwp.getDb());
	                        lyrDef.setUser(cwp.getUser());
	                        IProjection PROJECTION_DEFAULT =CRSFactory.getCRS(operacionesEducacion.getProperty("crs"));
	                        lyrDef.setProjection(PROJECTION_DEFAULT);
	                        lyrDef.setPassword(cwp.getPw());
	                        driver.setData(cwp.getConnection(), lyrDef);
	                      
	                        lyr = LayerFactory.createDBLayer(driver,nombre, PROJECTION_DEFAULT);
	                        mapCtrl.getMapContext().getLayers().addLayer(lyr);
	
	
	Muchas gracias y un saludo
	
	
	
	
	El 18 de enero de 2010 14:14, Juan Lucas Dominguez Rubio <jldominguez en prodevelop.es> escribió:
	

		Hola Carlos,
		 
		Si lo preguntas como usuario:
		 
		No es posible crear una capa a partir de dos tablas. En muchos casos es mejor hacer parte del trabajo en la BD. Por ejmplo, crear una vista en tu BD Oracle basándote en una o varias tablas y luego abrir esa vista desde gvSIG, ya que la pestaña GeoBD te ofrece las tablas y también las vistas, aunque tanmbién es cierto que no todas las vistas se pueden abrir desde gvSIG. En el momento de intentar abrir una vista te aparece un mensaje de error si esa vista es de las que no pueden abrirse. Otra posibilidad es abrir dos tablas como dos capas distintas en gvSIG y después trabajar con ellas (unión, link, operaciones espaciales, etc)
		 
		Cuando abres una tabla Oracle Spatial, puedes añadir una restricción de tipo alfanumérico y/o geométrico en la caja de texto que hay en la parte inferior del diálogo. Ahí puedes poner la expresión SQL que iría después del WHERE. Para esto debes mirar los nombres y tipos de los atributos (esto aparece en la parte superior derecha del diálogo).
		 
		Si lo preguntas como desarrollador:
		 
		El driver de Oracle Spatial de gvSIG usa la famosa librería ojdbc14.jar distribuída por Oracle, que es la que usan todas las aplicaciones Java que acceden a BD Oracle, y además en el código del driver hay métodos para instanciar objetos geométricos (SDO_GEOMETRY), así pues leyendo correctamente los metadatos de la BD y escribiendo las SQL adecuadas debe ser posible hacer cualquier cosa con la BD y las capas.
		 
		Saludos,
		 
		Juan Lucas Domínguez Rubio
		---
		Prodevelop SL, Valencia (España)
		Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
		http://www.prodevelop.es <http://www.prodevelop.es/> 
		---

________________________________

		
		De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
		
		Enviado el: lun 18/01/2010 7:58 

		Para: Lista de Desarrolladores de gvSIG
		Asunto: Re: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial
		

		Buenos dias Juan,
		
		Es posible en gvsig realizar una consulta sobre 2 tablas y crear con el resultado un Layer, para mostrarla en la vista ???
		Se pueden hacer consultas espaciales ??
		
		Hay te dejo mis dudas,
		
		Un saludo y Muchas Gracias
		
		
		
		El 13 de enero de 2010 11:20, Juan Lucas Dominguez Rubio <jldominguez en prodevelop.es> escribió:
		

			Hola, si es una tabla sin geometrías quizás te conviene obtener la conexión y después montar la SQL sin llamar a ningún método que ya exista.
			 
			Para obtener la conexión fíjate en el método load() de la clase DefaultJDBCDriver. Sería algo así:
			 
			ConnectionWithParams cwp = SingleVectorialDBConnectionManager.instance().getConnection(
			OracleSpatialDriver.NAME,
			<usuario>,
			<contrasena>,
			<nombre_conexion_cualquiera>,
			<host>,
			<puerto_normalmente_1521>,
			<nombre_db>,
			true);
			 
			El objeto conexión se obtiene con:
			 
			Connection c = ((ConnectionJDBC) cwp.getConnection()).getConnection();
			 
			y esa c es la que puedes usar para ejecutar una SQL. Puedes mirar el código del método addRow de la clase OracleSpatialWriter para ver cómo construir la SQL.
			 
			
			Saludos, 

			 
			Juan Lucas Domínguez Rubio
			---
			Prodevelop SL, Valencia (España)
			Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
			http://www.prodevelop.es <http://www.prodevelop.es/> 
			---

________________________________

			
			De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
			
			Enviado el: mar 12/01/2010 16:30 

			Para: Lista de Desarrolladores de gvSIG
			Asunto: Re: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial
			

			Buenas Juan,
			 
			Para modificar una tabla de oracle spatial sin geometria "añadir un registro", en que clases podria ver el código referente al modo en el que lo hace cuando se utilizando la interfaz grafica??
			 
			Un saludo
			 

			 
			El 11 de enero de 2010 10:11, Juan Lucas Dominguez Rubio <jldominguez en prodevelop.es> escribió:
			

				Hola.
				 
				Creo que el primer error no tiene consecuencias graves. La serie de errores que hay después ocurren porque se supone que la primera columna de la SQL que has ejecutado debe ser de tipo ROWID y no lo es:
				 
				select CODAREA, c."IDCOMISION", c."NOMBREORIG", c."CODINEMUN", c."GID", c."TIPOZONA", c."TITULARIDAD", c."CLASE", c.GEOMETRY from PRUEBA.HU_AREAINFLUENCIA c where (sdo_relate(GEOMETRY, mdsys.sdo_geometry(2003, 82337, null, mdsys.sdo_elem_info_array(1, 1003, 3), mdsys.sdo_ordinate_array(61368.4981766357, 4077142.0001, 264551.392423364, 4236433.0)), 'mask=anyinteract querytype=window') = 'TRUE')
				
				La línea donde salta la excepción dice:
				 
				ROWID ri = (ROWID) rs.getObject(1);
				 
				así que la SQL que creas debe empezar por "SELECT ROWID, ....". Esa parte del código es bastante delicada. Haz ejecuciones paso a paso y mira que los tipos y nombres de columnas son los que el código espera.
				 
				Saludos,
				 
				Juan Lucas Domínguez Rubio
				---
				Prodevelop SL, Valencia (España)
				Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
				http://www.prodevelop.es <http://www.prodevelop.es/> 
				---

________________________________

				
				De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
				
				Enviado el: lun 11/01/2010 9:43 

				Para: Lista de Desarrolladores de gvSIG
				Asunto: Re: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial
				

				Buenas Juan,
				Cuando ejecuto la linea : driver.setData(cwp.getConnection(), lyrDef);
				
				me salta en consola el siguiente error:
				
				ERROR [AWT-EventQueue-1] (OracleSpatialDriver.java:2452) - Unknown EPSG code: null
				DEBUG [Thread-14] (OracleSpatialDriver.java:927) - SQL para leer ids: select rowid, c.GEOMETRY.SDO_ELEM_INFO from PRUEBA.HU_AREAINFLUENCIA c
				 INFO [Thread-14] (OracleSpatialDriver.java:940) - FETCH_SIZE = 15000
				DEBUG [Thread-14] (OracleSpatialDriver.java:960) - Beginning of result set:
				 INFO [Thread-14] (OracleSpatialDriver.java:983) - IDs read: 0
				 INFO [Thread-14] (OracleSpatialDriver.java:402) - Ids thread delayed by: 891 ms.
				
				despues parece que recorre cada registro de la tabla dando en cada uno el siguiente error::
				
				
				DEBUG [AWT-EventQueue-1] (FLyrDefault.java:1106) - setTocStatusImage sun.awt.image.ToolkitImage en 1354684 sobre capa HU_AREAINFLUENCIA
				Viewport despues: Datos del viewPort:
				Extent=java.awt.geom.Rectangle2D$Double[x=100525.79679999966,y=4077142.0001,w=124868.29700000025,h=159290.99990000017]
				adjustedExtent=java.awt.geom.Rectangle2D$Double[x=61368.49817663574,y=4077142.0001,w=203182.8942467281,h=159290.99990000017]
				imageSize=java.awt.Dimension[width=1111,height=871]
				escale=0.005467979989747049
				trans=AffineTransform[[0.005467979989747, 0.0, -335.56172003067246], [0.0, -0.005467979989747, 23164.73087190406]]
				DEBUG [Thread-11] (OracleSpatialDriver.java:1476) - MAIN SEL = select CODAREA, c."IDCOMISION", c."NOMBREORIG", c."CODINEMUN", c."GID", c."TIPOZONA", c."TITULARIDAD", c."CLASE", c.GEOMETRY from PRUEBA.HU_AREAINFLUENCIA c where (sdo_relate(GEOMETRY, mdsys.sdo_geometry(2003, 82337, null, mdsys.sdo_elem_info_array(1, 1003, 3), mdsys.sdo_ordinate_array(61368.4981766357, 4077142.0001, 264551.392423364, 4236433.0)), 'mask=anyinteract querytype=window') = 'TRUE')
				java.lang.ClassCastException: java.lang.String
				    at es.prodevelop.cit.gvsig.fmap.drivers.jdbc.oracle.OracleSpatialFeatureIterator.next(OracleSpatialFeatureIterator.java:135)
				    at com.iver.cit.gvsig.fmap.drivers.featureiterators.ReprojectWrapperFeatureIterator.next(ReprojectWrapperFeatureIterator.java:92)
				    at com.iver.cit.gvsig.fmap.layers.FLyrVect._draw(FLyrVect.java:437)
				    at com.iver.cit.gvsig.fmap.layers.FLyrVect.draw(FLyrVect.java:631)
				    at com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:209)
				    at com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:175)
				    at com.iver.cit.gvsig.fmap.MapContext.draw(MapContext.java:1092)
				    at com.iver.cit.gvsig.fmap.MapControl$PaintingRequest.paint(MapControl.java:1043)
				    at com.iver.cit.gvsig.fmap.MapControl$Drawer2$Worker.run(MapControl.java:1234)
				    at java.lang.Thread.run(Thread.java:595)
				
				
				
				Saludos
				
				
				El 7 de enero de 2010 18:34, Juan Lucas Dominguez Rubio <jldominguez en prodevelop.es> escribió:
				

					Hola. Si no pones comillas dobles, Oracle lo pone internamente en mayúsculas <TIPO> y al compararlo con <Tipo>, falla. Si pones comillas también en la query, funciona:
					 
					Select "Tipo" from HUELVA_AREAINFLUENCIA
					 
					Creo que una aplicación que se dedique a crear tablas en Oracle con nombres arbitrarios para tablas y campos no puede prescindir de las comillas dobles.
					 
					Saludos,
					 
					Juan Lucas Domínguez Rubio
					---
					Prodevelop SL, Valencia (España)
					Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
					http://www.prodevelop.es <http://www.prodevelop.es/> 
					---

________________________________

					
					De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
					
					Enviado el: jue 07/01/2010 12:34 

					Para: Lista de Desarrolladores de gvSIG
					Asunto: Re: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial
					

					CREATE TABLE HUELVA_AREAINFLUENCIA
					(
					  "CodArea"     NVARCHAR2(80),
					  "Tipo"        NUMBER(12),
					  "IdComision"  NVARCHAR2(80),
					  "Titularida"  NUMBER(12),
					  "NombreOrig"  NVARCHAR2(80),
					  "CodIneMun"   NVARCHAR2(80),
					  "SHAPE_Leng"  FLOAT(126),
					  "SHAPE_Area"  FLOAT(126),
					  GID           NUMBER(12),
					  GEOMETRY      MDSYS.SDO_GEOMETRY
					)
					TABLESPACE USERS
					PCTUSED    0
					PCTFREE    10
					INITRANS   1
					MAXTRANS   255
					STORAGE    (
					            INITIAL          64K
					            MINEXTENTS       1
					            MAXEXTENTS       2147483645
					            PCTINCREASE      0
					            BUFFER_POOL      DEFAULT
					           )
					LOGGING 
					NOCOMPRESS 
					NOCACHE
					NOPARALLEL
					MONITORING;


					CREATE UNIQUE INDEX HUELVA_AREAINFLUENCIA_PK ON HUELVA_AREAINFLUENCIA
					(GID)
					LOGGING
					TABLESPACE USERS
					PCTFREE    10
					INITRANS   2
					MAXTRANS   255
					STORAGE    (
					            INITIAL          64K
					            MINEXTENTS       1
					            MAXEXTENTS       2147483645
					            PCTINCREASE      0
					            BUFFER_POOL      DEFAULT
					           )
					NOPARALLEL;


					CREATE INDEX HUELVA_AREAINFLUENCIA_SX ON HUELVA_AREAINFLUENCIA
					(GEOMETRY)
					INDEXTYPE IS MDSYS.SPATIAL_INDEX;


					ALTER TABLE HUELVA_AREAINFLUENCIA ADD (
					  CONSTRAINT HUELVA_AREAINFLUENCIA_PK
					 PRIMARY KEY
					 (GID)
					    USING INDEX 
					    TABLESPACE USERS
					    PCTFREE    10
					    INITRANS   2
					    MAXTRANS   255
					    STORAGE    (
					                INITIAL          64K
					                MINEXTENTS       1
					                MAXEXTENTS       2147483645
					                PCTINCREASE      0
					               ));







					Y la sentencia:

					Select Tipo from HUELVA_AREAINFLUENCIA;
					
					te dara el error de identificador no valido
					


					El 7 de enero de 2010 12:27, Juan Lucas Dominguez Rubio <jldominguez en prodevelop.es> escribió:
					

					Hola. El driver Oracle Spatial de gvSIG usa constantemente dobles comillas para poder manejar cualquier nombre de campo o tabla y no da problemas.
					 
					Puedes enviar la SQL de creación de una tabla y una SQL de consulta que dé problemas para que lo pueda reproducir en mi BD?
					 
					Saludos,
					 
					Juan Lucas Domínguez Rubio
					---
					Prodevelop SL, Valencia (España)
					Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
					http://www.prodevelop.es <http://www.prodevelop.es/> 
					---

________________________________

					
					De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
					
					Enviado el: jue 07/01/2010 12:12 

					Para: Lista de Desarrolladores de gvSIG
					Asunto: Re: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial
					

					He probado con el TOAD,al ejecutar sentencias sobre tablas que tienen nombres de campos o nombres de tablas entre
					comillas da el mismo error, meti campos nuevos, sin dobles comillas y no daba problemas, por eso me inclino a que el error
					sea cosa de las comillas...
					saludos
					
					
					El 7 de enero de 2010 11:59, Juan Lucas Dominguez Rubio <jldominguez en prodevelop.es> escribió:
					

					Hola. En las SQL los nombres de tablas, nombres de campos etc pueden ir entre comillas para evitar conflictos con las palabras clave del lenguaje SQL y para poder usar cualquier caracter salvo precisamente "
					 
					Por ejemplo al exportar una capa a Oracle Spatial se genera una SQL como esta:
					 
					  CREATE TABLE "LLEIDA"."GT2_NOR_00" 
					   ( "NAME" NVARCHAR2(40), 
					 "CAPITAL" NVARCHAR2(64), 
					 "APPROX" NUMBER(12,0), 
					 "AREA" FLOAT(126), 
					 "SOURCETHM" NVARCHAR2(16), 
					 "GEOMETRY" "MDSYS"."SDO_GEOMETRY" , 
					 "GID" NUMBER(12,0), 
					  CONSTRAINT "GT2_NOR_00_PK" PRIMARY KEY ("GID");
					 
					pero eso no significa que esos nombres incluyan las comillas (de hecho no creo que Oracle te deje crear un campo cuyo nombre contenga comillas dobles.
					 
					Insisto en que deberías acceder a tu BD con algún otro software que te permita hacer comprobaciones.
					 
					Saludos,
					 
					 
					Juan Lucas Domínguez Rubio
					---
					Prodevelop SL, Valencia (España)
					Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
					http://www.prodevelop.es <http://www.prodevelop.es/> 
					---

________________________________

					
					De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
					
					Enviado el: jue 07/01/2010 10:59 

					Para: Lista de Desarrolladores de gvSIG
					Asunto: Re: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial
					

					Buenas,
					
					Creo que ya se donde puede estar el problema, al generar la tabla se crearon los nombres de las tablas y campos
					entre dobles comillas, puede ser eso...
					
					Saludos
					
					
					El 7 de enero de 2010 10:42, Juan Lucas Dominguez Rubio <jldominguez en prodevelop.es> escribió:
					

					Hola. Solo se me ocurre que sea un problema de mayúsculas y minúsculas. El campo se llama CODAREA (todo con mayúsculas) ?
					 
					Cuál es el valor de _sql en la linea 668 de OracleSpatialDriver.java cuando salta esa excepción?
					Y cuál es el valor de not_restricted_sql en la linea 628 de OracleSpatialDriver.java cuando salta la otra excepción?
					
					Puedes introducir esas SQL en otra aplicación (por ejemplo Oracle SQLDeveloper [1]) y ver qué pasa?
					 
					[1] http://www.oracle.com/technology/software/products/sql/index.html
					 
					 
					Saludos,
					 
					
					Juan Lucas Domínguez Rubio
					---
					Prodevelop SL, Valencia (España)
					Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
					http://www.prodevelop.es <http://www.prodevelop.es/> 
					---

________________________________

					
					De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
					
					Enviado el: jue 07/01/2010 10:07 

					Para: Lista de Desarrolladores de gvSIG
					Asunto: Re: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial
					

					Buenas Juan, el error que me daba al cargar la capa leida de BD oracle spatial en gvsig mediante codificación es el siguiente
					
					ERROR [AWT-EventQueue-1] (OracleSpatialDriver.java:695) - While guessing shape type: ORA-00904: "CODAREA": identificador no válido
					
					 WARN [AWT-EventQueue-1] (OracleSpatialDriver.java:696) - Assumed MULTI
					ERROR [AWT-EventQueue-1] (OracleSpatialDriver.java:664) - While getting metadata. ORA-00904: "CODAREA": identificador no válido
					
					ERROR [AWT-EventQueue-1] (OracleSpatialDriver.java:2452) - Unknown EPSG code: null
					DEBUG [Thread-14] (OracleSpatialDriver.java:927) - SQL para leer ids: select rowid, c.GEOMETRY.SDO_ELEM_INFO from PRUEBA.HUELVA_AREAINFLUENCIA c
					 INFO [Thread-14] (OracleSpatialDriver.java:940) - FETCH_SIZE = 15000
					DEBUG [Thread-14] (OracleSpatialDriver.java:960) - Beginning of result set:
					 INFO [Thread-14] (OracleSpatialDriver.java:983) - IDs read: 0
					 INFO [Thread-14] (OracleSpatialDriver.java:402) - Ids thread delayed by: 906 ms.
					
					El campo CODAREA existe, no se porque me dice eso de identificador no valido
					
					Un saludo y Feliz año a tod en s
					
					
					El 24 de diciembre de 2009 08:55, Juan Lucas Dominguez Rubio <jldominguez en prodevelop.es> escribió:
					

					Hola,
					 
					Parece que has construído una query SQL con los atributos en orden equivocado. Ejecuta paso a paso para ver de qué tipo son los atributos del resultset que obtienes en esa línea de código.
					 
					Además, Oracle Spatial usa otra codificación para los SRS, es decir en la BD Oracle Spatial no debe figurar el valor 23030 para el SRID. . El código EPSG:23030 es el 82337 en Oracle Spatial.
					 
					Saludos,
					 
					Juan Lucas Domínguez Rubio
					---
					Prodevelop SL, Valencia (España)
					Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
					http://www.prodevelop.es <http://www.prodevelop.es/> 
					---

________________________________

					
					De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
					
					Enviado el: mié 23/12/2009 19:08 

					Para: Lista de Desarrolladores de gvSIG
					Asunto: Re: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial
					

					Buenas Juan,
					
					al cargar la capa me salta el siguiente error, comentarte que el sistema de referencia de los datos que he cargado es el 23030,
					te suen esto ??
					
					Gracias de antemano
					
					DEBUG [AWT-EventQueue-1] (MDIFrame.java:672) - Execute command:HELLO
					ERROR [AWT-EventQueue-1] (OracleSpatialDriver.java: 
					2175) - Oracle Spatial code not found in table: 23030
					ERROR [AWT-EventQueue-1] (OracleSpatialDriver.java:2205) - Error with SQL statement. Unknown Oracle code: 23030
					ERROR [AWT-EventQueue-1] (OracleSpatialDriver.java:2452) - Unknown EPSG code: null
					DEBUG [Thread-14] (OracleSpatialDriver.java:927) - SQL para leer ids: select rowid, c.GEOM.SDO_ELEM_INFO from PRUEBA.AREAINFLUENCIA c
					 INFO [Thread-14] (OracleSpatialDriver.java:940) - FETCH_SIZE = 15000
					DEBUG [Thread-14] (OracleSpatialDriver.java:960) - Beginning of result set:
					 INFO [Thread-14] (OracleSpatialDriver.java:983) - IDs read: 0
					 INFO [Thread-14] (OracleSpatialDriver.java:402) - Ids thread delayed by: 875 ms.
					DEBUG [AWT-EventQueue-1] (FLyrDefault.java:1106) - setTocStatusImage sun.awt.image.ToolkitImage en 129a559 sobre capa AREAINFLUENCIA
					DEBUG [Thread-14] (FLyrDefault.java:1106) - setTocStatusImage null sobre capa AREAINFLUENCIA
					Viewport despues: Datos del viewPort:
					Extent=java.awt.geom.Rectangle2D$Double[x=100525.0,y=1.0,w=7.9679899441E10,h=4077141.0]
					adjustedExtent=java.awt.geom.Rectangle2D$Double[x=100525.0,y=-3.1231621380395138E10,w=7.9679899441E10,h=6.2467319903790276E10]
					imageSize=java.awt.Dimension[width=1111,height=871]
					escale=1.3943290689299303E-8
					trans=AffineTransform[[1.3943291E-8, 0.0, -0.001401649296542], [0.0, -1.3943291E-8, 435.5284243950154]]
					DEBUG [Thread-11] (OracleSpatialDriver.java:1476) - MAIN SEL = select CODAREA, c."TIPO", c."IDCOMISION", c."TITULARIDA", c."NOMBREORIG", c."SHAPE_LENG", c."SHAPE_AREA", c."CODINEMUN", c.GEOM from PRUEBA.AREAINFLUENCIA c where (sdo_relate(GEOM, mdsys.sdo_geometry(2003, 23030, null, mdsys.sdo_elem_info_array(1, 1003, 3), mdsys.sdo_ordinate_array(100525.0, -3.12316213803951E10, 7.9679999966E10, 3.12356985233951E10)), 'mask=anyinteract querytype=window') = 'TRUE')
					java.lang.ClassCastException: java.lang.String
					    at es.prodevelop.cit.gvsig.fmap.drivers.jdbc.oracle.OracleSpatialFeatureIterator.next(OracleSpatialFeatureIterator.java:135)
					    at com.iver.cit.gvsig.fmap.drivers.featureiterators.ReprojectWrapperFeatureIterator.next(ReprojectWrapperFeatureIterator.java:92)
					    at com.iver.cit.gvsig.fmap.layers.FLyrVect._draw(FLyrVect.java:437)
					    at com.iver.cit.gvsig.fmap.layers.FLyrVect.draw(FLyrVect.java:631)
					    at com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:209)
					    at com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:175)DEBUG [Thread-11] (NotificationManager.java:104) - java.lang.String
					java.lang.ClassCastException: java.lang.String
					    at es.prodevelop.cit.gvsig.fmap.drivers.jdbc.oracle.OracleSpatialFeatureIterator.next(OracleSpatialFeatureIterator.java:135)
					    at com.iver.cit.gvsig.fmap.drivers.featureiterators.ReprojectWrapperFeatureIterator.next(ReprojectWrapperFeatureIterator.java:92)
					    at com.iver.cit.gvsig.fmap.layers.FLyrVect._draw(FLyrVect.java:437)
					    at com.iver.cit.gvsig.fmap.layers.FLyrVect.draw(FLyrVect.java:631)
					    at com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:209)
					    at com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:175)
					    at com.iver.cit.gvsig.fmap.MapContext.draw(MapContext.java:1092)
					    at com.iver.cit.gvsig.fmap.MapControl$PaintingRequest.paint(MapControl.java:1043)
					    at com.iver.cit.gvsig.fmap.MapControl$Drawer2$Worker.run(MapControl.java:1234)
					    at java.lang.Thread.run(Thread.java:595)
					
					    at com.iver.cit.gvsig.fmap.MapContext.draw(MapContext.java:1092)
					    at com.iver.cit.gvsig.fmap.MapControl$PaintingRequest.paint(MapControl.java:1043)
					    at com.iver.cit.gvsig.fmap.MapControl$Drawer2$Worker.run(MapControl.java:1234)
					    at java.lang.Thread.run(Thread.java:595)


					El 23 de diciembre de 2009 15:59, Juan Lucas Dominguez Rubio <jldominguez en prodevelop.es> escribió:
					

					Hola,
					 
					en mi workspace de 1.9 (conectado al trunk del repositorio) tengo un proyecto llamado libDriverManager y en su build.xml se crea el archivo "driver-manager-1.1.jar". Qué versión estás compilando? De dónde salen esos dos jar?
					 
					Saludos,
					 
					Juan Lucas Domínguez Rubio
					---
					Prodevelop SL, Valencia (España)
					Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
					http://www.prodevelop.es <http://www.prodevelop.es/> 
					---

________________________________

					
					De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
					
					Enviado el: mié 23/12/2009 13:15 

					Para: Lista de Desarrolladores de gvSIG
					Asunto: Re: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial
					

					Buenas Juan, te comento un poco
					tengo dos librerias :
					
					driver-manager-1.0-SNAPSHOT      con esta si me aparece el driver de Oracle Spatial Database Driver
					
					driver-manager-1.0                         con esta NO ME SALE EL DRIVER  Oracle Spatial Database Driver
					
					
					Si pongo las dos librerias evidentemente me da error, me dice que tengo dos librerias que se 
					llaman igual,
					¿Que diferencias hay entre una y otra ?
					
					¿como puedo hacer para que me salga el driver oracle spatial?
					
					
					Saludos y muchas gracias
					
					
					El 23 de diciembre de 2009 11:43, Juan Lucas Dominguez Rubio <jldominguez en prodevelop.es> escribió:
					

					Hola, Carlos.
					 
					Esto es un esbozo del código que necesitas para crear una capa Oracle Spatial por código. No lo he probado, pero los errores que tenga creo que serán solo erratas. Debes reemplazar las expresiones <...> por los valores de tu BD: El puerto suele ser 1521 para Oracle Spatial. He supuesto que el nombre del campo geométrico es GEOMETRY:
					 
					===========================
					ConnectionWithParams cwp = null;
					try {
					  cwp = SingleVectorialDBConnectionManager.instance().getConnectionOracleSpatialDriver.NAME, <usuario>, <contrasena>,
					    <nombre_de_la_conexion_cualquier_cosa>, <nombre-del-servidor-o-IP>, <puerto>, <nombre_de_la_BD>, true);
					} catch (DBException e) {
					  System.err.println("Error: " + e.getMessage());
					}
					FLayer lyr = null;
					try {
					                IVectorialDatabaseDriver driver = (IVectorialDatabaseDriver) LayerFactory.getDM().getDriver(OracleSpatialDriver.NAME);
					                 schema = <esquema_es_decir_usuario>;
					                 tableName = <nombre_de_la_tabla>;
					                String fidField = "ROWID";
					                String geomField = "GEOMETRY";
					                String[] fields = <array_con_los_nombre_de_campos>; // debe contener "ROWID" pero no "GEOMETRY" 
					                DBLayerDefinition lyrDef = new DBLayerDefinition();
					                lyrDef.setName(<nombre_de_la_capa_en_el_TOC_de_gvSIG_cualquier_cosa>);
					                lyrDef.setSchema(schema);
					                lyrDef.setTableName(tableName);
					                lyrDef.setWhereClause("");
					                lyrDef.setFieldGeometry(geomField);
					                lyrDef.setFieldNames(fields);
					                lyrDef.setFieldID(fidField);
					                lyrDef.setHost(cwp.getHost());
					                lyrDef.setPort(Integer.parseInt(cwp.getPort()));
					                lyrDef.setDataBase(cwp.getDb());
					                lyrDef.setUser(cwp.getUser());
					                lyrDef.setPassword(cwp.getPw());
					                driver.setData(cwp.getConnection(), lyrDef);
					                lyr = LayerFactory.createDBLayer(driver, layerName, null);
					} catch (Exception ex) {
					  System.err.println("Error: " + ex.getMessage());
					}
					 
					=============================
					 
					 
					 
					Saludos,
					 
					 
					Juan Lucas Domínguez Rubio
					---
					Prodevelop SL, Valencia (España)
					Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
					http://www.prodevelop.es <http://www.prodevelop.es/> 
					---

________________________________

					De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
					Enviado el: mié 23/12/2009 10:34
					Para: Lista de Desarrolladores de gvSIG
					Asunto: Re: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial
					
					
					Buenas Juan,
					
					He estado viendo las clases que me comentastes de WizardVectorialDB y de NewOracleSpatialTableWizard,
					eso lo que hace es realmente mostrar el panel de conexio a bd y seleccionar la capa a representar en la vista,
					para hacer esto mismo pero todo mediante codificación nada de abrir panels, es posible  con estas clases ??  o hay otras ??
					
					Gracias y saludos
					
					
					
					El 21 de diciembre de 2009 15:40, Juan Lucas Dominguez Rubio <jldominguez en prodevelop.es> escribió:
					

					Hola, Carlos. No entiendo lo que quieres hacer. Coger una capa de la BD Oracle Spatial y representarla en una vista de gvSIG es lo que hace la extensión Oracle Spatial, entre otras cosas. Qué cosa novedosa quieres hacer con una capa Oracle Spatial?
					 
					La creación de la capa puedes verla en el método getLayer de la clase WizardVectorialDB (proyecto appGvsig). Ese método se usa para cualquier tipo de BD espacial, lo único que cambia son las variables selectedDataSource y conex. Para ver cómo dar valor a esas variables en el caso de Oracle Spatial, mira por ejemplo el método addNewConnection de la clase NewOracleSpatialTableWizard.
					 
					Saludos,
					 
					Juan Lucas Domínguez Rubio
					---
					Prodevelop SL, Valencia (España)
					Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
					http://www.prodevelop.es <http://www.prodevelop.es/> 
					---

________________________________

					
					De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
					
					Enviado el: lun 21/12/2009 14:31 

					Para: Lista de Desarrolladores de gvSIG
					Asunto: Re: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial
					

					Efectivamente, estaba intentando ejecutar ese código, mi intención era coger una capa de nuesta BD oracle
					y representarla en gvsig, pero ando un poco perdido y estaba siguiendo ese ejemplo
					que parecia crear un DBLayerDefinition con la capa de la BD...
					
					Hay alguno forma para hacer esto que te comento, coger la capa de la bd y representarla  ??
					
					Muchas Gracias y un saludo
					
					
					
					El 21 de diciembre de 2009 13:48, Juan Lucas Dominguez Rubio <jldominguez en prodevelop.es> escribió:
					

					Esta línea exactamente:
					 
					OracleSpatialDriver driver = new OracleSpatialDriver();
					 
					solo aparece en una clase de test que tiene un método 'main', pero no se usa en la aplicación. Se usó para hacer pruebas de rendimiento del driver. Estás intentando ejecutar ese main?
					 
					Saludos,
					
					Juan Lucas Domínguez Rubio
					---
					Prodevelop SL, Valencia (España)
					Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
					http://www.prodevelop.es <http://www.prodevelop.es/> 
					---

________________________________

					
					De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
					
					Enviado el: lun 21/12/2009 12:40 

					Para: Lista de Desarrolladores de gvSIG
					Asunto: Re: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial
					

					Sabes de alguna libreria que pueda revisar para ver si todo esta correcto ??
					
					Gracias y saludos
					
					
					El 21 de diciembre de 2009 12:36, Carlos Javier Martin Cano <carlosjmartinc en gmail.com> escribió:
					

					Si si seguí las instrucciones, me funciona todo menos la conexión  a oracle spatial...
					tengo la version 1.9 estable de gvsig
					
					
					El 21 de diciembre de 2009 12:30, Juan Lucas Dominguez Rubio <jldominguez en prodevelop.es> escribió: 


					Hola.
					 
					Parece que te falta compilar  y poner en su sitio alguna de las librerías básicas de gvSIG.
					Has seguido estas instrucciones?
					 
					http://www.gvsig.org/web/docdev/docs/svn_article/construir-gvsig-desde-el-repositorio-svn
					 
					Saludos,
					 
					 
					Juan Lucas Domínguez Rubio
					---
					Prodevelop SL, Valencia (España)
					Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
					http://www.prodevelop.es <http://www.prodevelop.es/> 
					---

________________________________

					
					De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
					
					Enviado el: lun 21/12/2009 11:18
					Para: Lista de Desarrolladores de gvSIG
					Asunto: Re: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial
					
					
					Buenas Juan,
					
					Primero gracias por contestar ,
					
					He podido ejecutar el build.xml del proyecto extOracleSpatial pero al iniciar mi aplicación
					cuando ejecuto la linea 
					
					OracleSpatialDriver driver = new OracleSpatialDriver();
					
					me da el siguiente error, no se si tendrá algo que ver
					
					java.lang.NoClassDefFoundError: com/iver/cit/gvsig/fmap/DriverException
					
					No se a que se debe,
					
					Un saludo
					
					
					El 21 de diciembre de 2009 10:56, Juan Lucas Dominguez Rubio <jldominguez en prodevelop.es> escribió:
					

					Hola, Carlos. En la línea 42 de extOracleSpatial/build.xml dice:
					 
					depends="init,compile,create-jar,copy-data-files,copy-to-andami, clean">
					 
					Elimina el elemento 'compile' para que quede asi:
					 
					depends="init,create-jar,copy-data-files,copy-to-andami,clean">
					 
					Creo que así podrás ejecutar el build.xml sin ese error. No olvides tener activada la opción "Project - build automatically" en el menú principal.
					 
					Saludos,
					 
					 
					 
					Juan Lucas Domínguez Rubio
					---
					Prodevelop SL, Valencia (España)
					Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
					http://www.prodevelop.es <http://www.prodevelop.es/> 
					---

________________________________

					De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Carlos Javier Martin Cano
					Enviado el: dom 20/12/2009 20:41
					Para: gvsig_desarrolladores en listserv.gva.es
					Asunto: [Gvsig_desarrolladores] gvsig 1.9 y oraclespatial
					
					
					Buenas, 
					me he bajado la extensión para oracle spatial  (extOracleSpatial) 
					al ejecutar el build.xml me da el siguiente error : 
					
					Buildfile: D:\gvSIG\extOracleSpatial\build.xml 
					init: 
					compile: 
					gvSIG-import-build-number: 
					
					BUILD FAILED 
					D:\gvSIG\extOracleSpatial\build.xml:123: The following error occurred while executing this line: 
					D:\gvSIG\binaries\ant\utilities.xml:207: Error: property buildNumberFile not set or file not available: ${buildNumberFile} 
					
					Total time: 1 second 
					
					Me podeis ayudar ? 
					
					Gracias y un saludo 

					_______________________________________________
					gvSIG_desarrolladores mailing list
					gvSIG_desarrolladores en listserv.gva.es
					http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
					
					



					_______________________________________________
					gvSIG_desarrolladores mailing list
					gvSIG_desarrolladores en listserv.gva.es
					http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
					
					




					_______________________________________________
					gvSIG_desarrolladores mailing list
					gvSIG_desarrolladores en listserv.gva.es
					http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
					
					



					_______________________________________________
					gvSIG_desarrolladores mailing list
					gvSIG_desarrolladores en listserv.gva.es
					http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
					
					



					_______________________________________________
					gvSIG_desarrolladores mailing list
					gvSIG_desarrolladores en listserv.gva.es
					http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
					
					



					_______________________________________________
					gvSIG_desarrolladores mailing list
					gvSIG_desarrolladores en listserv.gva.es
					http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
					
					



					_______________________________________________
					gvSIG_desarrolladores mailing list
					gvSIG_desarrolladores en listserv.gva.es
					http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
					
					



					_______________________________________________
					gvSIG_desarrolladores mailing list
					gvSIG_desarrolladores en listserv.gva.es
					http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
					
					



					_______________________________________________
					gvSIG_desarrolladores mailing list
					gvSIG_desarrolladores en listserv.gva.es
					http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
					
					



					_______________________________________________
					gvSIG_desarrolladores mailing list
					gvSIG_desarrolladores en listserv.gva.es
					http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
					
					



					_______________________________________________
					gvSIG_desarrolladores mailing list
					gvSIG_desarrolladores en listserv.gva.es
					http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
					
					



				_______________________________________________
				gvSIG_desarrolladores mailing list
				gvSIG_desarrolladores en listserv.gva.es
				http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
				
				



			_______________________________________________
			gvSIG_desarrolladores mailing list
			gvSIG_desarrolladores en listserv.gva.es
			http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
			
			



		_______________________________________________
		gvSIG_desarrolladores mailing list
		gvSIG_desarrolladores en listserv.gva.es
		http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
		
		



	_______________________________________________
	gvSIG_desarrolladores mailing list
	gvSIG_desarrolladores en listserv.gva.es
	http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
	
	


------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20100304/4f8129d4/attachment.htm 


Más información sobre la lista de distribución gvSIG_desarrolladores