[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