Calcular Bounding Box con Geoserver

6 messages Options
Embed this post
Permalink
michogar

Calcular Bounding Box con Geoserver

Reply Threaded More More options
Print post
Permalink
Hola a todos,

os comento mi problemilla. Tengo unos datos cargados en Geoserver, unas tablas que están relacionadas 1 - n, tengo creadas dos vistas y accedo a ellas. El problema que tengo es que desde mi visor, al seleccionar un padre, tengo que visualizar este y todos sus hijos en el mapa, para lo que necesito calcular una especie de bounding box de todas las entidades. ¿Teneis alguna idea de como puedo realizar esto sin tener acceso a la base de datos desde mi aplicación?, se que desde el editor de entidades de Geoserver tengo un botón generar que me genera el encuadre, ¿Podria acceder a esa función?.


Saludos y gracias.



--
# michogar
# Analista Programador SIG
# GNU/Linux Counter 462666

Una visión personal:
http://michogar.blogspot.com

El día a día:
http://twitter.com/michogar



_______________________________________________
Spanish mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/spanish
Jorge Sanz

Re: Calcular Bounding Box con Geoserver

Reply Threaded More More options
Print post
Permalink
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Micho Gar escribió:

> Hola a todos,
>
> os comento mi problemilla. Tengo unos datos cargados en Geoserver, unas
> tablas que están relacionadas 1 - n, tengo creadas dos vistas y accedo a
> ellas. El problema que tengo es que desde mi visor, al seleccionar un
> padre, tengo que visualizar este y todos sus hijos en el mapa, para lo
> que necesito calcular una especie de bounding box de todas las
> entidades. ¿Teneis alguna idea de como puedo realizar esto sin tener
> acceso a la base de datos desde mi aplicación?, se que desde el editor
> de entidades de Geoserver tengo un botón generar que me genera el
> encuadre, ¿Podria acceder a esa función?.
>
>
> Saludos y gracias.
>

si tienes publicados tus datos como WFS puedes obtener el bbox a partir
de una petición getFeature al que le añadas un filtro (por un campo supong).

nosotros hemos usado eso con entidades puntuales para poder hacer un
zoom a un grupo concreto (por el campo ID).

* Es decir, desde algún sitio nos piden que abramos el mapa con un zoom
a las entidades X,Y,Z
* Montamos una petición WFS que devuelva esas entidades en concreto
* De la respuesta obtenemos el BBox
* Ya podemos hacer zoom a ese sitio usando la API del visor web (en este
caso era OpenLayers).

Si no tienes o quieres publicar WFS, puedes hacerte un servlet sencillo
que imite esa funcionalidad o bien limitas el WFS y haces algo parecido
a un proxy que sólo ofrezca ese tipo de peticiones.

Espero haberte dado alguna idea. Tal vez geoserver exponga esa
funcionalidad de algún modo.

Saludos
- --
Jorge Gaspar Sanz Salinas
Ingeniero en Geodesia y Cartografía
http://es.osgeo.org
http://wiki.osgeo.org/wiki/Jorge_Sanz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iQEcBAEBAgAGBQJKSN8zAAoJEAOYD75lvHdBnKQH/1PAM2sYerSJaRXk9433czFj
PcabMAnU6LTelQD91LAdwO26ECLyEFjq7dqmkbadHoRfMH/4dI6Ya50WQLtiMAOF
petXurPrzfm7hZ3cOnELYsvLwc4Zr7x5EHM4MgoyxCFJt6ioo03SsdjDexeEYS0l
Sn98172hYTFgm5yGRho8N5epZAaJ2lnViWHqkXCgnZuURGwbgP1D/3hyLubgc1ed
p90A8+zQS2vNFWmXmQi8sUGIpfb55cr6q2R8wHqpzA/1LKVKf8zwLqL9sKRaV/Hn
42jcpb2fhuvswUiMmb2xoAZfTlWKkUe/AQ9ilRUFmP1xPTdlDx3B9jbGz0xIel4=
=RlC3
-----END PGP SIGNATURE-----
_______________________________________________
Spanish mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/spanish
michogar

Re: Calcular Bounding Box con Geoserver

Reply Threaded More More options
Print post
Permalink
Ok, muchas gracias Xurxo, estoy revisando la doc de Geoserver a ver si ya tiene algo implementado que me sea util, porque de momento solo tengo publicado el WMS, aunque con vistas a cargar también WFS, seguro me ahorro algún problemilla.

Saludos y gracias.


El 29 de junio de 2009 17:35, Jorge Gaspar Sanz Salinas <[hidden email]> escribió:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Micho Gar escribió:
> Hola a todos,
>
> os comento mi problemilla. Tengo unos datos cargados en Geoserver, unas
> tablas que están relacionadas 1 - n, tengo creadas dos vistas y accedo a
> ellas. El problema que tengo es que desde mi visor, al seleccionar un
> padre, tengo que visualizar este y todos sus hijos en el mapa, para lo
> que necesito calcular una especie de bounding box de todas las
> entidades. ¿Teneis alguna idea de como puedo realizar esto sin tener
> acceso a la base de datos desde mi aplicación?, se que desde el editor
> de entidades de Geoserver tengo un botón generar que me genera el
> encuadre, ¿Podria acceder a esa función?.
>
>
> Saludos y gracias.
>

si tienes publicados tus datos como WFS puedes obtener el bbox a partir
de una petición getFeature al que le añadas un filtro (por un campo supong).

nosotros hemos usado eso con entidades puntuales para poder hacer un
zoom a un grupo concreto (por el campo ID).

* Es decir, desde algún sitio nos piden que abramos el mapa con un zoom
a las entidades X,Y,Z
* Montamos una petición WFS que devuelva esas entidades en concreto
* De la respuesta obtenemos el BBox
* Ya podemos hacer zoom a ese sitio usando la API del visor web (en este
caso era OpenLayers).

Si no tienes o quieres publicar WFS, puedes hacerte un servlet sencillo
que imite esa funcionalidad o bien limitas el WFS y haces algo parecido
a un proxy que sólo ofrezca ese tipo de peticiones.

Espero haberte dado alguna idea. Tal vez geoserver exponga esa
funcionalidad de algún modo.

Saludos
- --
Jorge Gaspar Sanz Salinas
Ingeniero en Geodesia y Cartografía
http://es.osgeo.org
http://wiki.osgeo.org/wiki/Jorge_Sanz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iQEcBAEBAgAGBQJKSN8zAAoJEAOYD75lvHdBnKQH/1PAM2sYerSJaRXk9433czFj
PcabMAnU6LTelQD91LAdwO26ECLyEFjq7dqmkbadHoRfMH/4dI6Ya50WQLtiMAOF
petXurPrzfm7hZ3cOnELYsvLwc4Zr7x5EHM4MgoyxCFJt6ioo03SsdjDexeEYS0l
Sn98172hYTFgm5yGRho8N5epZAaJ2lnViWHqkXCgnZuURGwbgP1D/3hyLubgc1ed
p90A8+zQS2vNFWmXmQi8sUGIpfb55cr6q2R8wHqpzA/1LKVKf8zwLqL9sKRaV/Hn
42jcpb2fhuvswUiMmb2xoAZfTlWKkUe/AQ9ilRUFmP1xPTdlDx3B9jbGz0xIel4=
=RlC3
-----END PGP SIGNATURE-----
_______________________________________________
Spanish mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/spanish



--
# michogar
# Analista Programador SIG
# GNU/Linux Counter 462666

Una visión personal:
http://michogar.blogspot.com

El día a día:
http://twitter.com/michogar



_______________________________________________
Spanish mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/spanish
Gabriel Roldan

Re: Calcular Bounding Box con Geoserver

Reply Threaded More More options
Print post
Permalink
In reply to this post by michogar
Micho Gar wrote:

> Hola a todos,
>
> os comento mi problemilla. Tengo unos datos cargados en Geoserver, unas
> tablas que están relacionadas 1 - n, tengo creadas dos vistas y accedo a
> ellas. El problema que tengo es que desde mi visor, al seleccionar un
> padre, tengo que visualizar este y todos sus hijos en el mapa, para lo
> que necesito calcular una especie de bounding box de todas las
> entidades. ¿Teneis alguna idea de como puedo realizar esto sin tener
> acceso a la base de datos desde mi aplicación?, se que desde el editor
> de entidades de Geoserver tengo un botón generar que me genera el
> encuadre, ¿Podria acceder a esa función?.
>
'este te va a generar el bbox de toda la capa. Es eso lo que quieres? o
necesitas el bbox del padre + todos sus hijos?

En el caso último deberías hacer lo que te propuso Jorge, en tanto y
cuanto exita una serie de atributos por los cuales puedas filtrar y así
obtener de la vista solo los elementos correspondientes a un mismo "padre".

Qué tipo de visor es el que estás usando? javascript? J2SE? Para
visualizar el padre y sus hijos estás usando WFS o solo WMS? Al decir
"al seleccionar un padre, tengo que visualizar este y todos sus hijos en
el mapa" implicas que quieres hacer un zoom al bbox de ese grupo de
features? o solo visualizarlos con un estilo diferente?
Creo que lo más lógico sería: seleccionar el padre, obtener la clave
foranea de los hijos, hacer una consulta WFS filtrando por la clave
foránea. El WFS te devuelve los "hijos" y de ahí tomas sus bbox y
eventualmente también los "pintas"...
  tiene sentido?

Saludos,
Gabriel

>
> Saludos y gracias.
>
>
>
> --
> # michogar
> # Analista Programador SIG
> # GNU/Linux Counter 462666
>
> Una visión personal:
> http://michogar.blogspot.com
>
> El día a día:
> http://twitter.com/michogar
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Spanish mailing list
> [hidden email]
> http://lists.osgeo.org/mailman/listinfo/spanish


--
Gabriel Roldan
OpenGeo - http://opengeo.org
Expert service straight from the developers.
_______________________________________________
Spanish mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/spanish
michogar

Re: Calcular Bounding Box con Geoserver

Reply Threaded More More options
Print post
Permalink
Muchas gracias Gabriel. Siento no haberme explicado bien. Estoy trabajando en la solución a través de WFS. Lo que tengo pensado es realizar la consulta WFS con el id del padre, obtener todos los hijos y calcular el BBOX para el padre y los hijos. Estoy ahora mismo con ello. Os iré comentando.

Muchas gracias por todo.




El 30 de junio de 2009 15:02, Gabriel Roldan <[hidden email]> escribió:
Micho Gar wrote:
Hola a todos,

os comento mi problemilla. Tengo unos datos cargados en Geoserver, unas tablas que están relacionadas 1 - n, tengo creadas dos vistas y accedo a ellas. El problema que tengo es que desde mi visor, al seleccionar un padre, tengo que visualizar este y todos sus hijos en el mapa, para lo que necesito calcular una especie de bounding box de todas las entidades. ¿Teneis alguna idea de como puedo realizar esto sin tener acceso a la base de datos desde mi aplicación?, se que desde el editor de entidades de Geoserver tengo un botón generar que me genera el encuadre, ¿Podria acceder a esa función?.

'este te va a generar el bbox de toda la capa. Es eso lo que quieres? o necesitas el bbox del padre + todos sus hijos?

En el caso último deberías hacer lo que te propuso Jorge, en tanto y cuanto exita una serie de atributos por los cuales puedas filtrar y así obtener de la vista solo los elementos correspondientes a un mismo "padre".

Qué tipo de visor es el que estás usando? javascript? J2SE? Para visualizar el padre y sus hijos estás usando WFS o solo WMS? Al decir "al seleccionar un padre, tengo que visualizar este y todos sus hijos en el mapa" implicas que quieres hacer un zoom al bbox de ese grupo de features? o solo visualizarlos con un estilo diferente?
Creo que lo más lógico sería: seleccionar el padre, obtener la clave foranea de los hijos, hacer una consulta WFS filtrando por la clave foránea. El WFS te devuelve los "hijos" y de ahí tomas sus bbox y eventualmente también los "pintas"...
 tiene sentido?

Saludos,
Gabriel


Saludos y gracias.



--
# michogar
# Analista Programador SIG
# GNU/Linux Counter 462666

Una visión personal:
http://michogar.blogspot.com

El día a día:
http://twitter.com/michogar



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


_______________________________________________
Spanish mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/spanish


--
Gabriel Roldan
OpenGeo - http://opengeo.org
Expert service straight from the developers.

_______________________________________________
Spanish mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/spanish



--
# michogar
# Analista Programador SIG
# GNU/Linux Counter 462666

Una visión personal:
http://michogar.blogspot.com

El día a día:
http://twitter.com/michogar



_______________________________________________
Spanish mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/spanish
michogar

Re: Calcular Bounding Box con Geoserver

Reply Threaded More More options
Print post
Permalink
Hola, ya tengo esto solucionado, os comento. Lo he hecho tal y como comentaba Xurxo. Desde Openlayers hago una petición a al WFS de Geoserver ya filtrado por el ID del padre, ya que este dato lo tengo en las vistas. El GML que me devuelve lo parseo con el GML parser de OpenLayers y obtengo un vector con las features, a las que accedo a la geometria, recorro y calculo el bounds. Esto lo he hecho a cascoporro, no he encontrado nada, pero me imagino que habrá 1000 funciones que ya calculen esto.

Muchas gracias a todos por la ayuda, y un saludo.




El 30 de junio de 2009 16:30, Micho Gar <[hidden email]> escribió:
Muchas gracias Gabriel. Siento no haberme explicado bien. Estoy trabajando en la solución a través de WFS. Lo que tengo pensado es realizar la consulta WFS con el id del padre, obtener todos los hijos y calcular el BBOX para el padre y los hijos. Estoy ahora mismo con ello. Os iré comentando.

Muchas gracias por todo.




El 30 de junio de 2009 15:02, Gabriel Roldan <[hidden email]> escribió:

Micho Gar wrote:
Hola a todos,

os comento mi problemilla. Tengo unos datos cargados en Geoserver, unas tablas que están relacionadas 1 - n, tengo creadas dos vistas y accedo a ellas. El problema que tengo es que desde mi visor, al seleccionar un padre, tengo que visualizar este y todos sus hijos en el mapa, para lo que necesito calcular una especie de bounding box de todas las entidades. ¿Teneis alguna idea de como puedo realizar esto sin tener acceso a la base de datos desde mi aplicación?, se que desde el editor de entidades de Geoserver tengo un botón generar que me genera el encuadre, ¿Podria acceder a esa función?.

'este te va a generar el bbox de toda la capa. Es eso lo que quieres? o necesitas el bbox del padre + todos sus hijos?

En el caso último deberías hacer lo que te propuso Jorge, en tanto y cuanto exita una serie de atributos por los cuales puedas filtrar y así obtener de la vista solo los elementos correspondientes a un mismo "padre".

Qué tipo de visor es el que estás usando? javascript? J2SE? Para visualizar el padre y sus hijos estás usando WFS o solo WMS? Al decir "al seleccionar un padre, tengo que visualizar este y todos sus hijos en el mapa" implicas que quieres hacer un zoom al bbox de ese grupo de features? o solo visualizarlos con un estilo diferente?
Creo que lo más lógico sería: seleccionar el padre, obtener la clave foranea de los hijos, hacer una consulta WFS filtrando por la clave foránea. El WFS te devuelve los "hijos" y de ahí tomas sus bbox y eventualmente también los "pintas"...
 tiene sentido?

Saludos,
Gabriel


Saludos y gracias.



--
# michogar
# Analista Programador SIG
# GNU/Linux Counter 462666

Una visión personal:
http://michogar.blogspot.com

El día a día:
http://twitter.com/michogar



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


_______________________________________________
Spanish mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/spanish


--
Gabriel Roldan
OpenGeo - http://opengeo.org
Expert service straight from the developers.

_______________________________________________
Spanish mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/spanish



--
# michogar
# Analista Programador SIG
# GNU/Linux Counter 462666

Una visión personal:
http://michogar.blogspot.com

El día a día:
http://twitter.com/michogar





--
# michogar
# Analista Programador SIG
# GNU/Linux Counter 462666

Una visión personal:
http://michogar.blogspot.com

El día a día:
http://twitter.com/michogar



_______________________________________________
Spanish mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/spanish