Necesito crear una capa de tipo shapefile a partir de una tabla de Oracle 
Spatial. 

Hago lo siguiente: 



os = openStore('Oracle',port='1234', 
URL='jdbc:oracle:thin:@bdoratest.prueba.es:1234:test', 
CRS='EPSG:25830', 
PKFields='ID', 
BaseFilter='', 
DefaultGeometryField='GEOMETRY', 
Fields='', 
Table=nombre_tabla, 
password='xxx', 
dbname='test', 
host='bdoratest.prueba.es', 
dbuser='prueba', 
ProviderName='Oracle') 





schema = createFeatureType() 

schema.append("ID", "INTEGER") 
schema.append("GEOMETRY", "GEOMETRY") 
schema.get("GEOMETRY").setGeometryType(tipo_geom, D2) 

layer = createLayer(schema=schema, 
servertype="FilesystemExplorer", 
layertype="Shape", 
shpFile="capa_oracle.shp", 
CRS="EPSG:25830", 
geometryType=geom.POLYGON 
) 

layer.edit() 




features = os.features() 
for f in features: 
value_id = f.get('ID) 
value_geom = f.get('GEOMETRY') 
layer.append(ID=value_id,GEOMETRY=value_geom) 
layer.commit() 




currentView().getMapContext().getLayers().removeLayer(nombre_capa) 

currentView().addLayer(layer) 




Con tablas pequeña funciona bien, pero con tablas grandes tarda mucho y al 
final da un error de memoria. 

Hay alguna forma de hacerlo directamente, sin necesidad de recorrer el 
FeatureSet, con algún comando tipo "Export", similar a lo que se hace desde el 
entorno de usuario para exportar capas de un tipo a otro. 




Un saludo. 

Víctor Montes. 


_______________________________________________
gvSIG_desarrolladores mailing list
gvSIG_desarrolladores@listserv.gva.es
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de 
baja en esta lista, acuda a la siguiente dirección: 
https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores

Responder a