[Gvsig_desarrolladores] crear puntos y obtener coordenadas

Nacho Uve nachouve en gmail.com
Lun Dic 12 18:57:07 CET 2011


Francisco está en lo cierto. El código de esa extensión de sextante está
aquí;
https://joinup.ec.europa.eu/svn/sextante/soft/bindings/gvsig_1_x/trunk/gvsig_bindings/src/es/unex/sextante/gvsig/extensions/SextantePointCollectorExtension.java



El 12 de diciembre de 2011 18:36, Francisco Puga <fpuga en cartolab.es>escribió:

> Creo que Catch Coordinates es de Sextante
>
> El día 7 de diciembre de 2011 04:57, MarC Ortiz
> <yerotazma03 en hotmail.com> escribió:
> > Buen dia!
> >
> > Estoy realizando una extension para gvsig en donde busco por medio de los
> > Listener, crear puntos al vuelo sobre el MapControl y obtener a su vez
> las
> > coordenadas de dichos puntos que se van creando, hasta ahora he
> conseguido
> > capturar las coordenadas pero de la vista, a través de la clase que
> enseñare
> > al final, pero a su vez sé, que la herramienta Catch Coodinates esta
> > capturando las coordenadas de los layer y es precisamente lo que
> necesito,
> > pero no se como acceder al codigo de dicha herramienta, por favor si
> alguien
> > conoce, espero me indique!
> >
> > A su vez, como ya comentaba, quiero lograr crear puntos al vuelo, pero la
> > unica forma que lo he conseguido es creando puntos pero de capas en
> edicion,
> > reitero que quiero conseguir que esto sea al vuelo y sin tener que estar
> > editando una capa existente, solo quiero indicar que voy a dibujar
> puntos y
> > capturarlos para con estos realizar otras operaciones
> >
> > Espero me puedan ayudar, muchas gracias!
> >
> >
> > package org.gvsig.proyecto;
> >
> > import java.awt.Cursor;
> > import java.awt.Image;
> > import java.awt.Point;
> > import java.awt.Toolkit;
> > import java.awt.geom.Point2D;
> > import javax.swing.ImageIcon;
> > import javax.swing.JOptionPane;
> > //import com.hardcode.driverManager.DriverLoadException;
> > import java.lang.Exception;
> > //import com.iver.cit.gvsig.fmap.DriverException;
> > import com.iver.cit.gvsig.fmap.MapControl;
> > import com.iver.cit.gvsig.fmap.layers.FBitSet;
> > import com.iver.cit.gvsig.fmap.layers.FLayer;
> > import com.iver.cit.gvsig.fmap.layers.FLyrVect;
> > import com.iver.cit.gvsig.fmap.tools.Events.PointEvent;
> > import com.iver.cit.gvsig.fmap.tools.Listeners.PointListener;
> > import com.iver.cit.gvsig.fmap.tools.BehaviorException;
> >
> > /**
> >  * Implementación de la interfaz PointListener como herramienta para
> > realizar
> >  * una selección por punto.
> >  *
> >  * @author Vicente Caballero Navarro
> >  */
> >
> > public class PointSelectionListener implements PointListener {
> >
> >  private Point2D p;
> >  private final Image img = new
> >
> ImageIcon(MapControl.class.getResource("images/PointSelectCursor.gif")).getImage();
> >  private Cursor cur = Toolkit.getDefaultToolkit().createCustomCursor(img,
> > new Point(16, 16), "");
> >  protected MapControl mapCtrl;
> >  /**
> >   * Crea un nuevo AreaListenerImpl.
> >   *
> >   * @param mc MapControl.
> >   */
> >
> >  public PointSelectionListener(MapControl mc) {
> >
> >   JOptionPane.showMessageDialog(null, " Estoy en PointSelection");
> >
> >   this.mapCtrl = mc;
> >  }
> >  /**
> >   * @see
> >
> com.iver.cit.gvsig.fmap.tools.Listeners.PointListener#point(com.iver.cit.gvsig.fmap.tools.Events.PointEvent)
> >   */
> >
> >  public void point(PointEvent event) throws BehaviorException {
> >
> >
> >
> >   try {
> >
> >    //mapCtrl.getMapContext().selectByPoint(event.getPoint(), 1);
> >             Point2D p = event.getPoint();
> >
> >             Point2D mapPoint = mapCtrl.getViewPort().toMapPoint((int)
> > p.getX(), (int) p.getY());
> >
> >
> >
> >     JOptionPane.showMessageDialog(null, "Puntos x:" +  (int)p.getX() + "
> > Puntos y:" + (int)p.getY());
> >             // Tolerancia de 3 pixels
> >             double tol = mapCtrl.getViewPort().toMapDistance(3);
> >             FLayer[] actives = mapCtrl.getMapContext()
> >             .getLayers().getActives();
> >             for (int i=0; i < actives.length; i++)
> >             {
> >                 if (actives[i] instanceof FLyrVect) {
> >                     FLyrVect lyrVect = (FLyrVect) actives[i];
> >                     FBitSet oldBitSet =
> > lyrVect.getSource().getRecordset().getSelection();
> >                     FBitSet newBitSet = lyrVect.queryByPoint(mapPoint,
> tol);
> >                     if (event.getEvent().isControlDown())
> >                         newBitSet.xor(oldBitSet);
> >                     lyrVect.getRecordset().setSelection(newBitSet);
> >                 }
> >             }
> >   } /*catch (DriverException e) {*/
> >   catch (Exception e) {
> >    e.printStackTrace();
> >    throw new BehaviorException("No se pudo hacer la selección");
> >
> >   } /*catch (DriverLoadException e) {*/
> >    /*catch (Exception e) {*/
> >    // TODO Auto-generated catch block
> >    //e.printStackTrace();
> >   //}
> >  }
> >
> >  public void setPoint(Point2D p) throws BehaviorException {
> >
> >   this.p = p;
> >  }
> >
> >  /**
> >   * @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#getCursor()
> >   */
> >  public Cursor getCursor() {
> >   return cur;
> >  }
> >  /**
> >   * @see
> > com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#cancelDrawing()
> >   */
> >  public boolean cancelDrawing() {
> >   return false;
> >  }
> >  public void pointDoubleClick(PointEvent event) throws BehaviorException
> {
> >
> >   // mapCtrl.getMapContext().selectByPoint(event.getPoint(), 1);
> >             Point2D p = event.getPoint();
> >             Point2D mapPoint = mapCtrl.getViewPort().toMapPoint((int)
> > p.getX(), (int) p.getY());
> >
> >     JOptionPane.showMessageDialog(null, "Puntos x:" +  (int)p.getX() + "
> > Puntos y:" + (int)p.getY());
> >  }
> >
> > }
> >
> >
> >
> >
> >
> > Diana Marcela Ortiz Giraldo
> >
> >    Universidad del Valle
> >
> >
> >
> >
> > _______________________________________________
> > 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
>



-- 
Juan Ignacio Varela García
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20111212/45968597/attachment.htm 


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