Francisco está en lo cierto. El código de esa extensión de sextante está aquí;<br><a href="https://joinup.ec.europa.eu/svn/sextante/soft/bindings/gvsig_1_x/trunk/gvsig_bindings/src/es/unex/sextante/gvsig/extensions/SextantePointCollectorExtension.java">https://joinup.ec.europa.eu/svn/sextante/soft/bindings/gvsig_1_x/trunk/gvsig_bindings/src/es/unex/sextante/gvsig/extensions/SextantePointCollectorExtension.java</a><br>
<br><br><br><div class="gmail_quote">El 12 de diciembre de 2011 18:36, Francisco Puga <span dir="ltr"><<a href="mailto:fpuga@cartolab.es">fpuga@cartolab.es</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Creo que Catch Coordinates es de Sextante<br>
<br>
El día 7 de diciembre de 2011 04:57, MarC Ortiz<br>
<<a href="mailto:yerotazma03@hotmail.com">yerotazma03@hotmail.com</a>> escribió:<br>
<div><div class="h5">> Buen dia!<br>
><br>
> Estoy realizando una extension para gvsig en donde busco por medio de los<br>
> Listener, crear puntos al vuelo sobre el MapControl y obtener a su vez las<br>
> coordenadas de dichos puntos que se van creando, hasta ahora he conseguido<br>
> capturar las coordenadas pero de la vista, a través de la clase que enseñare<br>
> al final, pero a su vez sé, que la herramienta Catch Coodinates esta<br>
> capturando las coordenadas de los layer y es precisamente lo que necesito,<br>
> pero no se como acceder al codigo de dicha herramienta, por favor si alguien<br>
> conoce, espero me indique!<br>
><br>
> A su vez, como ya comentaba, quiero lograr crear puntos al vuelo, pero la<br>
> unica forma que lo he conseguido es creando puntos pero de capas en edicion,<br>
> reitero que quiero conseguir que esto sea al vuelo y sin tener que estar<br>
> editando una capa existente, solo quiero indicar que voy a dibujar puntos y<br>
> capturarlos para con estos realizar otras operaciones<br>
><br>
> Espero me puedan ayudar, muchas gracias!<br>
><br>
><br>
> package org.gvsig.proyecto;<br>
><br>
> import java.awt.Cursor;<br>
> import java.awt.Image;<br>
> import java.awt.Point;<br>
> import java.awt.Toolkit;<br>
> import java.awt.geom.Point2D;<br>
> import javax.swing.ImageIcon;<br>
> import javax.swing.JOptionPane;<br>
> //import com.hardcode.driverManager.DriverLoadException;<br>
> import java.lang.Exception;<br>
> //import com.iver.cit.gvsig.fmap.DriverException;<br>
> import com.iver.cit.gvsig.fmap.MapControl;<br>
> import com.iver.cit.gvsig.fmap.layers.FBitSet;<br>
> import com.iver.cit.gvsig.fmap.layers.FLayer;<br>
> import com.iver.cit.gvsig.fmap.layers.FLyrVect;<br>
> import com.iver.cit.gvsig.fmap.tools.Events.PointEvent;<br>
> import com.iver.cit.gvsig.fmap.tools.Listeners.PointListener;<br>
> import com.iver.cit.gvsig.fmap.tools.BehaviorException;<br>
><br>
> /**<br>
> * Implementación de la interfaz PointListener como herramienta para<br>
> realizar<br>
> * una selección por punto.<br>
> *<br>
> * @author Vicente Caballero Navarro<br>
> */<br>
><br>
> public class PointSelectionListener implements PointListener {<br>
><br>
> private Point2D p;<br>
> private final Image img = new<br>
> ImageIcon(MapControl.class.getResource("images/PointSelectCursor.gif")).getImage();<br>
> private Cursor cur = Toolkit.getDefaultToolkit().createCustomCursor(img,<br>
> new Point(16, 16), "");<br>
> protected MapControl mapCtrl;<br>
> /**<br>
> * Crea un nuevo AreaListenerImpl.<br>
> *<br>
> * @param mc MapControl.<br>
> */<br>
><br>
> public PointSelectionListener(MapControl mc) {<br>
><br>
> JOptionPane.showMessageDialog(null, " Estoy en PointSelection");<br>
><br>
> this.mapCtrl = mc;<br>
> }<br>
> /**<br>
> * @see<br>
> com.iver.cit.gvsig.fmap.tools.Listeners.PointListener#point(com.iver.cit.gvsig.fmap.tools.Events.PointEvent)<br>
> */<br>
><br>
> public void point(PointEvent event) throws BehaviorException {<br>
><br>
><br>
><br>
> try {<br>
><br>
> //mapCtrl.getMapContext().selectByPoint(event.getPoint(), 1);<br>
> Point2D p = event.getPoint();<br>
><br>
> Point2D mapPoint = mapCtrl.getViewPort().toMapPoint((int)<br>
> p.getX(), (int) p.getY());<br>
><br>
><br>
><br>
> JOptionPane.showMessageDialog(null, "Puntos x:" + (int)p.getX() + "<br>
> Puntos y:" + (int)p.getY());<br>
> // Tolerancia de 3 pixels<br>
> double tol = mapCtrl.getViewPort().toMapDistance(3);<br>
> FLayer[] actives = mapCtrl.getMapContext()<br>
> .getLayers().getActives();<br>
> for (int i=0; i < actives.length; i++)<br>
> {<br>
> if (actives[i] instanceof FLyrVect) {<br>
> FLyrVect lyrVect = (FLyrVect) actives[i];<br>
> FBitSet oldBitSet =<br>
> lyrVect.getSource().getRecordset().getSelection();<br>
> FBitSet newBitSet = lyrVect.queryByPoint(mapPoint, tol);<br>
> if (event.getEvent().isControlDown())<br>
> newBitSet.xor(oldBitSet);<br>
> lyrVect.getRecordset().setSelection(newBitSet);<br>
> }<br>
> }<br>
> } /*catch (DriverException e) {*/<br>
> catch (Exception e) {<br>
> e.printStackTrace();<br>
> throw new BehaviorException("No se pudo hacer la selección");<br>
><br>
> } /*catch (DriverLoadException e) {*/<br>
> /*catch (Exception e) {*/<br>
> // TODO Auto-generated catch block<br>
> //e.printStackTrace();<br>
> //}<br>
> }<br>
><br>
> public void setPoint(Point2D p) throws BehaviorException {<br>
><br>
> this.p = p;<br>
> }<br>
><br>
> /**<br>
> * @see com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#getCursor()<br>
> */<br>
> public Cursor getCursor() {<br>
> return cur;<br>
> }<br>
> /**<br>
> * @see<br>
> com.iver.cit.gvsig.fmap.tools.Listeners.ToolListener#cancelDrawing()<br>
> */<br>
> public boolean cancelDrawing() {<br>
> return false;<br>
> }<br>
> public void pointDoubleClick(PointEvent event) throws BehaviorException {<br>
><br>
> // mapCtrl.getMapContext().selectByPoint(event.getPoint(), 1);<br>
> Point2D p = event.getPoint();<br>
> Point2D mapPoint = mapCtrl.getViewPort().toMapPoint((int)<br>
> p.getX(), (int) p.getY());<br>
><br>
> JOptionPane.showMessageDialog(null, "Puntos x:" + (int)p.getX() + "<br>
> Puntos y:" + (int)p.getY());<br>
> }<br>
><br>
> }<br>
><br>
><br>
><br>
><br>
><br>
> Diana Marcela Ortiz Giraldo<br>
><br>
> Universidad del Valle<br>
><br>
><br>
><br>
><br>
</div></div>> _______________________________________________<br>
> gvSIG_desarrolladores mailing list<br>
> <a href="mailto:gvSIG_desarrolladores@listserv.gva.es">gvSIG_desarrolladores@listserv.gva.es</a><br>
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse<br>
> de baja en esta lista, acuda a la siguiente dirección:<br>
> <a href="http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" target="_blank">http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores</a><br>
><br>
<br>
<br>
<br>
--<br>
Francisco Puga<br>
Grupo de Desarrollo<br>
Cartolab - Laboratorio de Ingeniería Cartográfica.<br>
<a href="http://www.cartolab.es" target="_blank">http://www.cartolab.es</a><br>
<br>
ETS Ingeniería de Caminos, Canales y Puertos<br>
Universidade da Coruña<br>
Campus de Elviña - 15071 A Coruña (España)<br>
(34)981167000 ext. 5493<br>
_______________________________________________<br>
gvSIG_desarrolladores mailing list<br>
<a href="mailto:gvSIG_desarrolladores@listserv.gva.es">gvSIG_desarrolladores@listserv.gva.es</a><br>
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: <a href="http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" target="_blank">http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div><div>Juan Ignacio Varela García <br></div><div><br></div></div><br>