[Gvsig_desarrolladores] Crear una capa tipo shapefile a partir de una tabla de Oracle Spatial

Montes Cámara, Victor victor.montes en alicante-ayto.es
Lun Oct 7 14:03:43 CEST 2019


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. 


------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20191007/8540030c/attachment.html>


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