Muchas gracias a ambos, Francisco y Antonio!<div>Ahora mismo estoy tratando de adaptar el código que obtuve desde el SVN para poder trabajar con Maven más comodamente y automatizar un poco el ciclo de vida de los proyectos (por lo menos hasta la parte de generación de las dependencias y manejo de proyectos en Eclipse). Incluso acabo de terminar de escribir un mail a esta misma lista ofreciendo ayuda con este tema a los desarrolladores por si quisieran lo que logre hacer! :-)</div>
<div><br></div><div>Cuando termine de hacer esto y pueda manejarme cómodamente con los proyectos voy a intentar mirar la clase DXFMemoryDriver y también poner en uso el código que me pasó Antonio, parece prometedor :-)</div>
<div><br></div><div>Gracias! Voy a tratar de mantenerlos informados sobre mi avance!<br><br><div class="gmail_quote">El 15 de enero de 2010 12:07, Antonio Grassi <span dir="ltr"><<a href="mailto:agrassic@gmail.com">agrassic@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Fede, supongo que quieres hacer una extensión que realice la importación/exportación a través de código de manera automática, o algo por el estilo. Si es asi, la mecanica sería más o menos la siguiente (hace un par de meses que empecé a desarrollar sobre gvSig por lo que es probable que esta no sea la forma más correcta de hacerlo, pero tal vez te de una idea de las clases que intervienen).<br>
<br>Espero te sirva,<br>Antonio Grassi<br><br>Crear las capas origen y destino:<br><br>View v = (View) PluginServices.getMDIManager().getActiveWindow();<br><br>IProjection proj = v.getMapControl().getMapContext().getProjection();<br>
<br>Driver d = LayerFactory.getDM().getDriver("nombre driver DXF o SHP");<br><br>FLayer l = LayerFactory.createLayer("nombre de capa", (VectorialFileDriver) d, new File("ruta al archivo DXF o SHP"), proj);<br>
<br>Con esto creas una layer. Los nombres de los drivers puedes verlos en la salida del log cuando inicias gvsig. Si la capa es nueva, se creará automáticamente el SHP o DXF. Luego tienes que leer el contenido de una capa e insertarlo en la otra. Puedes hacerlo mediante el siguiente método (las capas que creaste en el paso anterior al ser SHP o DXF son instancias de FLyrVect):<br>
<br>public static void addLayerContent(FLyrVect target, FLyrVect source) throws<br> VisitorException, ReadDriverException, InitializeWriterException {<br> <br> if (!target.isWritable()) {<br> throw new RuntimeException("The layer " + target.getName() + " is not writeable");<br>
}<br><br> IWriter writer = ((IWriteable) target.getSource().getDriver()).getWriter();<br><br> LayerDefinition ld = new LayerDefinition();<br> ld = new LayerDefinition();<br> ld.setName(target.getName());<br>
ld.setProjection(target.getProjection());<br> ld.setShapeType(target.getShapeType());<br> ld.setFieldsDesc(target.getRecordset().getFieldsDescription());<br><br> writer.initialize(ld);<br> writer.preProcess();<br>
<br> int index = 0;<br> <br> IFeatureIterator fi = source.getSource().getFeatureIterator();<br> <br> while (fi.hasNext()) {<br> IRowEdited r = new DefaultRowEdited(fi.next(),<br> IRowEdited.STATUS_ADDED, index++);<br>
writer.process(r);<br> }<br> <br> writer.postProcess();<br> fi.closeIterator();<div><div></div><div class="h5"><br>}<br><br><br><br>> Hola, me llamo Federico Jeanne.<br>
> Soy un desarrollador de software trabajando con GIS, estoy haciendo un<br>
> visualizador de capas y algunas otras cosas. Hace poco me pidieron para mi<br>
> proyecto la posibilidad de importar/exportar capas DXF y noté que la<br>
> funcionalidad ya está hecha en gvSIG.<br>
> Escribo a ustedes para pedir un poco de ayuda con este asunto, actualmente<br>
> estoy navegando un poco las clases de su proyecto (lo bajé desde el<br>
> repositorio SVN) y estoy tratando de rastrear la funcionalidad que necesito,<br>
> pero me está costando bastante<br>
</div></div><br>_______________________________________________<br>
gvSIG_desarrolladores mailing list<br>
<a href="mailto:gvSIG_desarrolladores@listserv.gva.es">gvSIG_desarrolladores@listserv.gva.es</a><br>
<a href="http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" target="_blank">http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Fede<br>
</div>