[Gvsig_desarrolladores] Creación de capas vectoriales temporales

Eduardo Alvarado eduardo.alvarado en imedexsa.es
Vie Oct 30 11:49:45 CET 2009


Saludos a todos.

 

Estoy creando una extensión de GvSig que automatice ciertas tareas. La primera de ellas es crear una capa vectorial sobre la vista activa de forma automática (asignándola a un fichero temporal, indicando proyecciones y atributos por código, etc). He probado a usar tanto código puro de GvSig como a emplear las clases incluidas en Sextante, pero sin éxito. En ambos casos consigo crear en memoria la capa, pero siempre falla al tratar de añadirla. Os dejo el código que tengo hasta ahora:

 

Versión de extensión sin uso de Sextante:

 

      public void execute(String actionCommand) {

            MDIManager mdiManager = PluginServices.getMDIManager();

            IWindow window = mdiManager.getActiveWindow();

            if (window instanceof View){

                  View view = (View) window;

                  FLyrVect capa = new FLyrVect();

                  capa.createSpatialIndex();

                  capa.setName("Traza");

              capa.setVisible(true);

              capa.setActive(true);

              view.getModel().getMapContext().getLayers().addLayer(capa);

            }

}

 

Versión de extensión con uso de Sextante:

 

      public boolean processAlgorithm() throws GeoAlgorithmExecutionException {

 

            IVectorLayer layer = this.getNewVectorLayer(OUTPUTVECTOR, "Nombre que aparecera", IVectorLayer.SHAPE_TYPE_LINE, types, sFields);

            FLyrRaster capa = (FLyrRaster) layer.getBaseDataObject();

            MDIManager mdiManager = PluginServices.getMDIManager();

            IWindow[] windows = mdiManager.getAllWindows();

            for (int i = 0; i < windows.length; i++) {

                  IWindow window = windows[i];

                  if (window instanceof View){

                        View view = (View) window;

                        view.getModel().getMapContext().getLayers().addLayer(capa);

                  }

            }     

            return false;

      }

 

 

Eduardo Alvarado Sánchez

Industrias Mecánicas de Extremadura S.A. (IMEDEXSA)

Teléfono: +34 927 29 02 33

FAX: +34 927 29 02 68

http://www.imedexsa.es <http://www.imedexsa.es/> 

eduardo.alvarado en imedexsa.es <mailto:pagudo en imedexsa.es> 

 

----------------------------------------------------------

ADVERTENCIA DE CONFIDENCIALIDAD

Este mensaje, su contenido y cualquier fichero transmitido con él están dirigidos únicamente a su destinatario y es confidencial. Por ello, se informa a quien lo reciba por error o tenga conocimiento del mismo sin ser su destinatario, que la información contenida en él es reservada y su uso no está autorizado, por lo que en tal caso le rogamos nos lo comunique por la misma vía o por teléfono (+34 927290233), así como que se abstenga de reproducir el mensaje mediante cualquier medio o remitirlo o entregarlo a otra persona, procediendo a su destrucción de manera inmediata.

IMEDEXSA se reserva acometer todas las acciones legales que crea oportunas contra todo aquel  que no cumpla con esta advertencia de confidencialidad.

----------------------------------------------------------

 

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


More information about the gvSIG_desarrolladores mailing list