コード例 #1
0
 /**
  * Método para obtener un tramo a partir de un punto en el panel del mapa.
  *
  * <p>Este método recorre la lista de tramos y busca el tramo que tiene una posicion (x,y) similar
  * a la pasada como parámetro.
  *
  * @param x Posicion a lo largo del eje x (coordenadas del panel)
  * @param y Posicion a lo largo del eje y (coordenadas del panel)
  * @return Tramo encontrado en la posicion dada o null
  */
 public Tramo buscarTramo(int posX, int posY) {
   Iterator<Tramo> iter = modelo.getMapa().getTramos().iterator();
   Tramo sel = null;
   boolean encontrado = false;
   while (!encontrado && iter.hasNext()) {
     Tramo next = iter.next();
     Polygon p = panel_mapa.getRepresentacion().generarAreaTramo(next);
     if (p.contains(posX, posY)) {
       encontrado = true;
       sel = next;
     }
   }
   if (encontrado) return sel;
   else return null;
 }
コード例 #2
0
 public Nodo buscarNodo(int posX, int posY) {
   double error = 3;
   Iterator<Nodo> iter = modelo.getMapa().getNodos().iterator();
   Nodo sel = null;
   boolean encontrado = false;
   while (!encontrado && iter.hasNext()) {
     Nodo next = iter.next();
     int nodox = panel_mapa.getRepresentacion().x_MapaARep(next.getPos().getLon());
     int nodoy = panel_mapa.getRepresentacion().y_MapaARep(next.getPos().getLat());
     if ((nodoy - error <= posY)
         && (nodoy + error >= posY)
         && (nodox - error <= posX)
         && (nodox + error >= posX)) {
       encontrado = true;
       sel = next;
     }
   }
   if (encontrado) return sel;
   else return null;
 }