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
[email protected]
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