[Gvsig_desarrolladores] dimensiones de las capas

Carlos Sánchez Periñán csanchez en prodevelop.es
Jue Mayo 29 10:49:52 CEST 2008


Hola Juan,

No se seguro que frontera es la que quieres obtener, pero como tu dices el método getFullExtent(); del MapContext te devuelve la frontera (o dimensión) de una capa concreta, y por tanto te devuelve la dimensión concreta de la capa que la llama. En MapCotext deberias tener otro método que se llama "getAllLayersExtent()", y que recorre todas las capas existentes añadiendo las dimensiones de cada una de ellas, obteniendo al final la máxima dimensión, o frontera que abarca todas las capas.

Si no tienes el método lo puedes implementar tu, seria algo así:

 

    private ArrayList layers = new ArrayList();

 

    public Rectangle2D getAllLayersExtent() {

        int size = layers.size();

 

        if (size == 0) {

            return null;

        }

 

        Rectangle2D resp = null;

 

        for (int i = 0; i < size; i++) {

            FLayer lyr = ((FLayer) layers.get(i));

 

            if (resp == null) {

                try {

                    resp = lyr.getFullExtent();

                }

                catch (FMapDriverException e) {

                    logger.error("While getting selected layer's extent: " +

                        e.getMessage());

                }

            }

            else {

                try {

                    resp.add(lyr.getFullExtent());

                }

                catch (FMapDriverException e) {

                    logger.error("While getting selected layer's extent: " +

                        e.getMessage());

                }

            }

        }

 

        return resp;

    }

 

Obviamente si el contenido de layers son solo las capas seleccionadas no te cogerá el máximo de las capas sino el de las capas seleccionadas, si pretendes ignorar la selección del usuario, tendrás que meter en "layers" todas las capas existentes (no conozco si ya hay implementado algún método que lo haga ya en estos momentos).

Espero haberte ayudado.

Saludos.

 

Carlos Sánchez Periñán

Equipo desarrollo GIS

Prodevelop S.L.

Tel :  963510612

E-mail : csanchez en prodevelop.es

________________________________

De: gvsig_desarrolladores-bounces en runas.cap.gva.es [mailto:gvsig_desarrolladores-bounces en runas.cap.gva.es] En nombre de Juan Lopez
Enviado el: miércoles, 28 de mayo de 2008 17:27
Para: gvSIG Desarrolladores
Asunto: [Gvsig_desarrolladores] dimensiones de las capas

 

Hola a todos...
Hasta ahora habia cometido un grave error, y era el pensar que el getFullExtent del mapContext (internamente llama al de FLayers) se refería a la dimension de sus capas (es decir, a la maxima de las dimensiones de sus capas).
Me he dado cuenta de que no es así, sino que devuelve el extent seleccionado por el usuario en ese momento.

¿Como puedo conocer la dimension de un conjunto de capas, es decir la maxima de las dimensiones?Esto deberia ser independiente de la seleccion del usuario.

gracias

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20080529/6dc45c64/attachment.htm


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