[Gvsig_desarrolladores] DXF a SHP

fede jeanne fedejeanne en gmail.com
Vie Ene 15 15:16:31 CET 2010


Muchas gracias a ambos, Francisco y Antonio!
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! :-)

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 :-)

Gracias! Voy a tratar de mantenerlos informados sobre mi avance!

El 15 de enero de 2010 12:07, Antonio Grassi <agrassic en gmail.com> escribió:

> 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).
>
> Espero te sirva,
> Antonio Grassi
>
> Crear las capas origen y destino:
>
> View v = (View) PluginServices.getMDIManager().getActiveWindow();
>
> IProjection proj = v.getMapControl().getMapContext().getProjection();
>
> Driver d = LayerFactory.getDM().getDriver("nombre driver DXF o SHP");
>
> FLayer l = LayerFactory.createLayer("nombre de capa", (VectorialFileDriver)
> d, new File("ruta al archivo DXF o SHP"), proj);
>
> 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):
>
> public static void addLayerContent(FLyrVect target, FLyrVect source) throws
>     VisitorException, ReadDriverException, InitializeWriterException {
>
>     if (!target.isWritable()) {
>         throw new RuntimeException("The layer " + target.getName() + " is
> not writeable");
>     }
>
>     IWriter writer = ((IWriteable)
> target.getSource().getDriver()).getWriter();
>
>     LayerDefinition ld = new LayerDefinition();
>     ld = new LayerDefinition();
>     ld.setName(target.getName());
>     ld.setProjection(target.getProjection());
>     ld.setShapeType(target.getShapeType());
>     ld.setFieldsDesc(target.getRecordset().getFieldsDescription());
>
>     writer.initialize(ld);
>     writer.preProcess();
>
>     int index = 0;
>
>     IFeatureIterator fi = source.getSource().getFeatureIterator();
>
>     while (fi.hasNext()) {
>         IRowEdited r = new DefaultRowEdited(fi.next(),
>             IRowEdited.STATUS_ADDED, index++);
>         writer.process(r);
>     }
>
>     writer.postProcess();
>     fi.closeIterator();
>
> }
>
>
>
> > Hola, me llamo Federico Jeanne.
> > Soy un desarrollador de software trabajando con GIS, estoy haciendo un
> > visualizador de capas y algunas otras cosas. Hace poco me pidieron para
> mi
> > proyecto la posibilidad de importar/exportar capas DXF y noté que la
> > funcionalidad ya está hecha en gvSIG.
> > Escribo a ustedes para pedir un poco de ayuda con este asunto,
> actualmente
> > estoy navegando un poco las clases de su proyecto (lo bajé desde el
> > repositorio SVN) y estoy tratando de rastrear la funcionalidad que
> necesito,
> > pero me está costando bastante
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>
>


-- 
Fede
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20100115/7bf612ad/attachment.htm 


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