[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