<html><body><div style="font-family: times new roman, new york, times, serif; font-size: 12pt; color: #000000"><div>Necesito crear una capa de tipo shapefile a partir de una tabla de Oracle Spatial.</div><div><br></div><div>Hago lo siguiente:</div><div><br></div><div><p style="margin: 0px;" data-mce-style="margin: 0px;"><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">os = openStore('Oracle',port='1234',</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;URL='jdbc:oracle:thin:@bdoratest.prueba.es:1234:test',</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CRS='EPSG:25830',</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PKFields='ID',</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BaseFilter='',</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DefaultGeometryField='GEOMETRY',</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fields='',</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Table=nombre_tabla,</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password='xxx',</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbname='test',</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;host='bdoratest.prueba.es',</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbuser='prueba',</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProviderName='Oracle')</span><br></p><p style="margin: 0px;" data-mce-style="margin: 0px;"><br></p><p style="margin: 0px;" data-mce-style="margin: 0px;"><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">schema = createFeatureType()&nbsp;</span></p><p style="margin: 0px;" data-mce-style="margin: 0px;"><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">schema.append("ID", "INTEGER")</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> schema.append("GEOMETRY", "GEOMETRY")</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> schema.get("GEOMETRY").setGeometryType(tipo_geom, D2)</span><br> <br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> layer = createLayer(schema=schema,</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; servertype="FilesystemExplorer",</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; layertype="Shape",</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; shpFile="capa_oracle.shp",</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CRS="EPSG:25830",</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;geometryType=geom.POLYGON</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><br> <br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> layer.edit()</span></p><p style="margin: 0px;" data-mce-style="margin: 0px;"><br></p><p style="margin: 0px;" data-mce-style="margin: 0px;"><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">features = os.features()</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> for f in features:</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> &nbsp;&nbsp;&nbsp;&nbsp;value_id = f.get('ID)</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> &nbsp;&nbsp;&nbsp;&nbsp;value_geom = f.get('GEOMETRY')</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;"> &nbsp;&nbsp;&nbsp;&nbsp;layer.append(ID=value_id,GEOMETRY=value_geom)</span><br><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">layer.commit()</span></p><p style="margin: 0px;" data-mce-style="margin: 0px;"><br></p><p style="margin: 0px;" data-mce-style="margin: 0px;"><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">currentView().getMapContext().getLayers().removeLayer(nombre_capa)</span></p><p style="margin: 0px;" data-mce-style="margin: 0px;"><span style="font-family: &quot;lucida console&quot;, sans-serif; font-size: small;">currentView().addLayer(layer)</span></p><p style="margin: 0px;" data-mce-style="margin: 0px;"><br></p><p style="margin: 0px;" data-mce-style="margin: 0px;">Con tablas pequeña funciona bien, pero con tablas grandes tarda mucho y al final da un error de memoria.</p><p style="margin: 0px;" data-mce-style="margin: 0px;">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.</p><p style="margin: 0px;" data-mce-style="margin: 0px;"><br></p><p style="margin: 0px;" data-mce-style="margin: 0px;">Un saludo.</p><p style="margin: 0px;" data-mce-style="margin: 0px;">Víctor Montes.</p><p style="margin: 0px;" data-mce-style="margin: 0px;"><br></p></div></div></body></html>