[Gvsig_desarrolladores] MapOverview / Info
deobjectos seleccionados
Carlos Sánchez Periñán
csanchez en prodevelop.es
Jue Ago 21 12:26:35 CEST 2008
Hola de nuevo Carlos,
Si quieres los datos alfanuméricos de los atributos seleccionados de la tabla es muy parecido realmente, gvSIG separa Datos alfanuméricos de las geometrÃas pero ambas están relacionadas en la capa. Para obtener los datos alfanuméricos de una capa necesitas obtener su fuente de datos (DataSource) que puede ser de diversos tipos en vectorial, ya sea base de datos o fichero XML por ejemplo. Pues bién, los datos seleccionados vienen dados por unos Ãndices de selección (FBitSet) que se encuentran activos o no y se indican en la clase SelectableDataSource. Por tanto accedemos a la selección de la capa y luego lo recorremos obteniendo los campos de cada fila seleccionada que equivaldrá a una geometrÃa seleccionada shape(i).
Espero que el siguiente fragmento de código te oriente mejor.
FBitSet bitSelection = lyrA.getSelectionSupport().getSelection(); //accedes a los datos seleccionados de la capa lyrA.
try {
//bucle que recorre la selección y devuelve los valores de cada campo j que contiene cada fila i.
for (int i = 0; i < bitSelection.getRowCount(); i++) {
for (int j = 0; j < bitSelection.getFieldCount(); j++) {
Value v = bitSelection.getFieldValue(i, j);
return v;
}
}
} catch (DriverException e1) {
e1.printStackTrace();
}
Este fragmento te sirve para una capa (lyrA) cargada en el TOC. Espero que se parezca más a lo que lo que buscas.
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 Web.DE
Enviado el: miércoles, 20 de agosto de 2008 12:37
Para: 'Lista de Desarrolladores de gvSIG'
Asunto: AW: [Gvsig_desarrolladores] MapOverview / Info deobjectos seleccionados
Hola Carlos,
gracias por tu pronta respuesta. Creo que no he esplicado que tipo de información es la que necesito. Lo que necesito no es la geometrÃa, sino la información dinámica. Realmente necesito la misma información del tool info, pero para todos los elementos seleccionados. O sea algo parecido a la implementación de la función point(..) en la clase InfoListener, pero para todos los elementos seleccionados.
Quizá tienes una idea.
Saludos
Carlos
-----Ursprüngliche Nachricht-----
Von: gvsig_desarrolladores-bounces en runas.cap.gva.es [mailto:gvsig_desarrolladores-bounces en runas.cap.gva.es] Im Auftrag von Carlos Sánchez Periñán
Gesendet: Mittwoch, 20. August 2008 09:44
An: Lista de Desarrolladores de gvSIG
Betreff: RE: [Gvsig_desarrolladores] MapOverview / Info de objectos seleccionados
Hola Carlos,
Voy a ver si puedo resuelver al menos parte de tus dudas.
En este caso acerca de demandar la información de los objetos seleccionados en un layer WFS.
Los layer WFS son vectoriales, por tanto una vez descargados en memoria está almacenado en una capa vectorial que será instanciando un objeto de la clase FLyrVect.
La información geométrica de la selección se define en una clase "SelectionSupport" ya que se almacenan en la misma como una lista de Shape's accesibles a partir de un Ãndice con el método...
lyrA.getShape(i); //accedes a las geometrÃas de una capa.
Existe en libFmap una interfaz llamada ReadableVectorial que la implementan la clase VectorialAdapter, ahà tienes ese método que es getShape(i); Desde el Layer vectorial puedes acceder a tu adapter. En este caso si lyrA es un FLyrVect será con lyrA.getSource(); para obtener el adapter y a partir de el el getShape(i);
Para acceder a las seleccionadas necesitas...
BitSet sel = layerA.getSelectionSupport().getSelection();
for (int i = sel.nextSetBit(0); i >= 0; i = sel.nextSetBit(i+1)) {
//Para ver que está dentro la geometrÃa del BoundingBox //seleccionado.
Rectangle2D bb = lyrA.getShapeBounds(i);
// si intersecta el Rectangle2D con el Rectangle2D reproyectado
// la geometrÃa en esa posición pertenece a las seleccionadas.
ViewPort _vp;
if (Utils.rectanglesItersect(bb, _vp.getAdjustedExtent())) {
//Obtenemos la geometria
IGeometry ig = lyrA.getShape(i);
}
}
Espero que te ayude.
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 Web.DE Enviado el: martes, 19 de agosto de 2008 15:55
Para: gvsig_desarrolladores en runas.cap.gva.es
Asunto: [Gvsig_desarrolladores] MapOverview / Info de objectos seleccionados
Hola a todos!
Soy nuevo en esta lista, asà que no sé muy bien cómo funciona. Bueno estoy desarrollando una aplicación con gvSIG y tengo dos preguntas, quizá alguien me pueda ayudar.
Preámbulo: Estoy desarrollando una aplicación sin utilizar el MDIFrame y sin utilizar la clase Launch.java para arrancar la aplicación, ya que no necesito toda la extensibilidad del Framework, sino su funcionalidad básica. Es decir estoy mostrando diferentes mapas y tools dentro de mi propia aplicación. Realmente casi todo ha sido muy fácil y funciona muy bien. Sin embargo tengo los siguientes problemas/preguntas.
1. MapOverview y TOC → no he podido hacer funcionar estos dos componentes y realmente no sé que me hace falta. No hay ningún error, solo que no muestran nada.
// Initialize tree of layers
tOC = new TOC();
tOC.setMapContext(mapControl.getMapContext());
tOC.setVisible(true);
tOC.setBackground(Color.WHITE);
tOC.getTree().setBackground(Color.WHITE);
// Initialize map overview
mapOverview = new MapOverview(mapControl);
mapOverview.setPreferredSize(new Dimension(150, 200));
mapOverview.setVisible(true);
2. Quiero demandar la información de los objetos seleccionados en un layer WFS.
Si alguien me puede dar una pista de cómo proseguir estarÃa muy agradecido.
Gracias
Carlos
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20080821/e585a1a8/attachment.htm
Más información sobre la lista de distribución gvSIG_desarrolladores