x

Suche bestimmte Funktion in SourceCode


  1. Suche bestimmte Funktion in SourceCode · erwin6330 (Gast) · 30.10.2013 19:53 · [flux]

    Guten Abend,

    zuerst nochmals vielen Dank für die Hilfe in diesem Post

    http://forum.openstreetmap.org/viewtopic.php?id=23053

    Ich suche eine bestimmte Codepassage in der festgestellt wird, ob ein way beendet wird, entweder per Doppelclick im Zeichenmodus auf den selben Node oder durch das Schließen eines Kreises/Area auf einen bereits vorhandenen Node im way.

    Ich weiß, es gibt die Codepassagen, aber ich kann sie nicht mehr finden.

    Ich habe ant inzwischen zum laufen gebracht, dank Eurer Hilfe im obigen Post und mein erstes josm-custom.jar kompiliert, bin mächtig stolz. 😄
    Subversion habe ich mir auch besorgt, läuft einwandfrei, aber eben finde ich den Code nicht mehr, ich hatte ihn schon. 🙁

    Wer kann mir da bitte helfen, sitze nun seit fast 2 Stunden und gebe für´s erst Mal auf, hoffe auf Hilfe.

    Danke im voraus, bisher habe ich immer kompetente Antworten erhalten.


    • Re: Suche bestimmte Funktion in SourceCode · couchmapper (Gast) · 30.10.2013 21:03 · [flux]

      Hallo,

      wie wär's denn mit org.openstreetmap.josm.actions.mapmode.DrawAction, dort steht was von

      ␣␣␣␣␣␣␣if(e.getClickCount()␣>␣1␣&&␣mousePos␣!=␣null␣&&␣mousePos.equals(oldMouse
      Pos))␣{
      //␣A␣double␣click␣equals␣"user␣clicked␣last␣node␣again,␣finish␣way"
      //␣Change␣draw␣tool␣only␣if␣mouse␣position␣is␣nearly␣the␣same,␣as
      //␣otherwise␣fast␣clicks␣will␣count␣as␣a␣double␣click
      finishDrawing();
      return;
      }
      

    • Re: Suche bestimmte Funktion in SourceCode · erwin6330 (Gast) · 31.10.2013 08:03 · [flux]

      Morgen,

      ich habe es wieder zusammengefunden 😄

      Einmal wird, wie von couchmapper genannt, org.openstreetmap.josm.actions.mapmode.DrawAction benötigt, siehe Zeile 595 ff, hier wird beim zeichnen überprüft, ob der Weg beendet wird:

      //␣Connected␣to␣a␣node␣that's␣already␣in␣the␣way
      if(way.containsNode(n))␣{
      wayIsFinished␣=␣true;
      selection.clear();
      }
      

      Jetzt brauche ich noch die Überprüfung, ob es eine Area ist, gefunden in org.openstreetmap.josm.data.osm.Way, siehe Zeile 497 ff

      ␣␣␣/**
      *␣Determines␣if␣this␣way␣denotes␣an␣area␣(closed␣way␣with␣at␣least␣three␣distinct␣nodes).
      *␣@return␣{@code␣true}␣if␣this␣way␣is␣closed␣and␣contains␣at␣least␣three␣distinct␣nodes
      *␣@see␣#isClosed
      *␣@since␣5490
      */
      public␣boolean␣isArea()␣{
      if␣(this.nodes.length␣>=␣4␣&&␣isClosed())␣{
      Node␣distinctNode␣=␣null;
      for␣(int␣i=1;␣i<nodes.length-1;␣i++)␣{
      if␣(distinctNode␣==␣null␣&&␣nodes[i]␣!=␣nodes[0])␣{
      distinctNode␣=␣nodes[i];
      }␣else␣if␣(distinctNode␣!=␣null␣&&␣nodes[i]␣!=␣nodes[0]␣&&␣nodes[i]␣!=␣distinctNode)␣{
      return␣true;
      }
      }
      }
      return␣false;
      }
      

      Wunderbar, jetzt kann ich weitermachen.

      Schönen Feiertag und schönes Wochenende