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