[Gvsig_desarrolladores] Funcionamiento extraño en capa de eventos

David Alda Fernandez de Lezea dalda en hazi.es
Mie Mayo 30 10:43:29 CEST 2012


Hola Francisco,

Gracias por la respuesta. Tenía implementado un método para refrescar que consistía en mover el extent 100 metros y luego volver a la posición inicial. Me faltaba refrescar el extent del mapcontext, pero aún así hay ocasiones en las que me sigue ocurriendo lo mismo. El método que he implementado es el siguiente:

	IView view = (IView) PluginServices.getMDIManager().getActiveWindow();
	MapControl mc = view.getMapControl();
		
	mc.getMapContext().beginAtomicEvent();
		
	Rectangle2D oldExtent = mc.getViewPort().getAdjustedExtent();
        
        double upperLeftCornerX = oldExtent.getMinX()-100;
        double  upperLeftCornerY = oldExtent.getMinY()-100;
        double width = oldExtent.getWidth();
        double height = oldExtent.getHeight();
        Rectangle2D extent = new Rectangle2D.Double(upperLeftCornerX, upperLeftCornerY, width, height);
        mc.getViewPort().setExtent(extent);
        
        com.iver.andami.ui.mdiManager.IWindow view2 = PluginServices.getMDIManager().getActiveWindow();
		if (!(view2 instanceof View))
			return;
        View vista=(View)view2;
        ((ProjectDocument)vista.getModel()).setModified(true);
        
        mc.drawMap(true);
		
        GraphicLayer gl = mc.getMapContext().getGraphicsLayer(); 
        gl.clearAllGraphics(); 

        // SET EXTENT and be sure the viewport reflects it. 
        mc.getViewPort().refreshExtent(); 
        
        upperLeftCornerX = oldExtent.getMinX()+100;
        upperLeftCornerY = oldExtent.getMinY()+100;
        
        extent = new Rectangle2D.Double(upperLeftCornerX, upperLeftCornerY, width, height);
        gl = mc.getMapContext().getGraphicsLayer(); 
        gl.clearAllGraphics(); 

        // SET EXTENT and be sure the viewport reflects it. 
        mc.getViewPort().setExtent(extent); 
        mc.getViewPort().refreshExtent(); 
        
        view2 = PluginServices.getMDIManager().getActiveWindow();
		if (!(view2 instanceof View))
			return;
        vista=(View)view2;
        ((ProjectDocument)vista.getModel()).setModified(true);
        
        mc.drawMap(true);
        
        mc.getMapContext().endAtomicEvent(); 

La verdad es que no consigo saber por qué ocurre esto. 

Gracias.

Un saludo,


David Alda Fernández de Lecea
GIS Analista Programadorea / Analista Programador GIS
KONTSULTORIA  UNITATEA / UNIDAD DE CONSULTORÍA

Granja Modelo s/n
01192 Arkaute Araba
T 945 003 295 F 945 003 290
dalda en hazi.es | www.hazi.es

 



*********************  LEGE OHARRA   *******************   AVISO LEGAL   *******************   DISCLAIMER   ******************

Mezu hau pertsonala eta isilpekoa da eta baimenik gabeko erabilera debekatua dago legalki. Jasotzailea ez bazara ezabatu mezua, bidali eta kontserbatu gabe.

Este mensaje es personal y confidencial y su uso no autorizado está prohibido legalmente. Si usted no es el destinatario, proceda a borrarlo, sin reenviarlo ni conservarlo.

This message is personal and confidential, unauthorised use is legally prohibited. If you are not the intended recipient, delete it without resending or backing it.


-----Mensaje original-----
De: gvsig_desarrolladores-bounces en listserv.gva.es [mailto:gvsig_desarrolladores-bounces en listserv.gva.es] En nombre de Francisco Puga
Enviado el: lunes, 28 de mayo de 2012 16:12
Para: Lista de Desarrolladores de gvSIG
Asunto: Re: [Gvsig_desarrolladores]Funcionamiento extraño en capa de eventos

Creo que estos dos hilos pueden ayudarte:

http://osgeo-org.1560.n6.nabble.com/Error-en-FFrameView-al-generar-un-mapa-td4368631.html

http://osgeo-org.1560.n6.nabble.com/Get-image-from-view-problems-integrating-it-with-viewport-setExtent-td4175839.html

El 22 de mayo de 2012 09:51, David Alda Fernandez de Lezea <dalda en hazi.es> escribió:
>
> Hola,
>
> Estoy trabajando en una extensión sobre gvSIG 1.11 en la que se tienen que borrar unos puntos de una capa de eventos. Esta capa de eventos tira de un access a través de ODBC. El borrado lo hago bien a través de SQL contra la BD, pero tengo un problema con el refresco del viewport. A pesar de que borro los puntos en la BD, en el viewport no desaparecen. Llegan a desaparecer si hago un zoom menos, o si clicko en otra parte del mapa. A veces si que se eliminan los puntos del viewport, pero no sigue un comportamiento estable. No sé si me he explicado bien.
>
> A parte de eso, he intentado hacer un reload de la capa pero me lanza 
> la excepcion
>
> ReloadLayerException
>
> ¿Qué puede estar ocurriendo?
>
> Gracias.
>
> Un saludo,
>
>
> David Alda Fernández de Lecea
> GIS Analista Programadorea / Analista Programador GIS KONTSULTORIA  
> UNITATEA / UNIDAD DE CONSULTORÍA
>
> Granja Modelo s/n
> 01192 Arkaute Araba
> T 945 003 295 F 945 003 290
> dalda en hazi.es | www.hazi.es
>
> *********************  LEGE OHARRA   *******************   AVISO LEGAL   
> *******************   DISCLAIMER   ******************
>
> Mezu hau pertsonala eta isilpekoa da eta baimenik gabeko erabilera debekatua dago legalki. Jasotzailea ez bazara ezabatu mezua, bidali eta kontserbatu gabe.
>
> Este mensaje es personal y confidencial y su uso no autorizado está prohibido legalmente. Si usted no es el destinatario, proceda a borrarlo, sin reenviarlo ni conservarlo.
>
> This message is personal and confidential, unauthorised use is legally prohibited. If you are not the intended recipient, delete it without resending or backing it.
>
>
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> Para ver histórico de mensajes, editar sus preferencias de usuario o 
> darse de baja en esta lista, acuda a la siguiente dirección: 
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>



--
Francisco Puga
Grupo de Desarrollo
Cartolab - Laboratorio de Ingeniería Cartográfica.
http://www.cartolab.es

ETS Ingeniería de Caminos, Canales y Puertos Universidade da Coruña Campus de Elviña - 15071 A Coruña (España) (34)981167000 ext. 5493 _______________________________________________
gvSIG_desarrolladores mailing list
gvSIG_desarrolladores en listserv.gva.es
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores


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