Symbole in JOSM

Kann man in JOSM zusätzlich eigene Symbole für Werte einbinden, die noch keines haben?
Wenn ja, wie geht das?

Danke für eure Antworten.

Viele Grüße,
KaChing_Cacher.

Hallo,

ich hab JOSM.jar jetzt entpackt und auch das richtige Verzeichnis mit den Icons sowie die Style-Datei gefunden
und beides ergänzt.
Nachdem ich das ganze aber wieder mit Winrar als .zip-Datei speichere (nicht komprimiere) und die Dateiendung wieder zu .jar ändere,
lässt sich die Datei mit der gewöhnlichen bat.-Ausführungsdatei nicht mehr starten.

Wer kann mir helfen?
Danke schonmal.

Viele Grüße,
KaChing_Cacher.

Das liegt dann wohl daran, dass eine jar-Datei keine zip-Datei ist :wink:

Naja, aber entpacken lässt sich die .jar-Datei ganz normal.
Dann muss sie sich doch auch wieder ausführbar verpacken lassen!
Ich hab doch nach dem Verpacken die Endung von .zip wieder auf.jar geändert!
Geht das so nicht?

Ob das einfach so geht weiß ich leider nicht. Da müsste dann mal ein java-Programmierer ran.

Aber geht das nicht auch über die Style-Funktionen in den Optinonen?

Welche Bilder zu bestimmten Tags verwendet werden sollen, kann man da aber nicht einstellen,
sondern nur komplette Styles benutzen.
Ich möchte aber lediglich ein paar Icons zu den vorhandenen Standardicons hinzufügen.

Weiß keiner wie das geht?
Hat noch niemand von euch sowas gemacht?

Im Prinzip schon, jedoch müssen die Pfade etc. passen. Schau doch mal nach, ob die erneut gepackte Datei die gleichen Dateien und Pfade hat wie die Original-JAR.

Es gibt zwar Zip-Programme, die eine JAR-Datei entpacken können, aber trotzdem ist es noch lange nicht das gleiche wie ein ZIP-Format. Das sind völlig verschiedene Dateiformate, völlig andere Inhaltscodierungen, und zwar unabhängig von der Dateiendung.

Wenn man eine JAR-Datei entpackt, den Inhalt verändert, als ZIP neu verpackt, nach JAR umbenennt und dann wieder als JAR-Datei verwenden will, ist das, als würde man einem Engländer ein englisches Buch wegnehmen, sich den Inhalt merken, ein paar Dinge ändern, alles auf deutsch wieder aufschreiben, den Aufdruck “deutsch” nach “englisch” ändern und das Buch dem Engländer zurückgeben. Der sieht zwar das richtige Etikett “englisch” und der Inhalt ist auch eigentlich OK, aber entschlüsseln kann er ihn nicht (es sei denn er könnte zufällig deutsch).

Um eine JAR-Datei richtig zu packen, braucht man das Java Development Kit (JDK), das man sich kostenlos herunterladen kann. Da gibt es dann ein Programm namens “jar” für die Kommandozeile, das solche JAR-Dateien erstellt, z.B. werden mit dem Befehl

jar cf MyJar.jar Class1.class Class2.class

die Dateien Class1.class und Class2.class in eine JAR-Datei namens MyJar.jar verpackt. (c = erzeuge JAR-Datei, f = Name der JAR-Datei)

Für weitere Informationen findet man im Netz eine Menge Dokumentation zum “Java Archive” Format.

??? Du erstellst ein Stylesheet wo du per den Dateinamen des Symbols angibst und mit zu welchem Tag bzw zu welcher Tagkombination es gehört. Dann in den Einstellungen den Symbolpfad angeben, damit JOSM die Bilder auch findet, und den Style mit den Bildern selber und fertig.

In der jar-Datei rumspielen ist doch Blödsinn, willst du das jedes mal machen, wenn du updatest?

edit: zB reicht folgender Code um das Ortseingangsschild zu wechseln


<rule>
    <condition k="traffic_sign" v="city_limit"/>
    <icon annotate="true" src="anderes_icon.png"/>
</rule>

Also ich hab’s jetz mal so gemacht, wie Masch geschrieben hat.

Bin nach Einstellungen → Karteneinstellungen → MapPaint Stile gegangen und hab dort bei “aktive Stile” noch eine XML-Datei mit folgendem Inhalt hinzugefügt:

<rules name="verkehrszeichen">

  <rule>
        <condition k="traffic_sign" v="DE:201"/>
        <icon annotate="true" src="de_201-50.png"/>
        <scale_min>1</scale_min>
        <scale_max>40000</scale_max>
    </rule>
  
  <rule>
        <condition k="traffic_sign" v="DE:201-50"/>
        <icon annotate="true" src="de_201-50.png"/>
        <scale_min>1</scale_min>
        <scale_max>40000</scale_max>
    </rule>
  
  <rule>
        <condition k="traffic_sign" v="DE:201-51"/>
        <icon annotate="true" src="de_201-51.png"/>
        <scale_min>1</scale_min>
        <scale_max>40000</scale_max>
    </rule>
  
  <rule>
        <condition k="traffic_sign" v="DE:205"/>
        <icon annotate="true" src="de_205.png"/>
        <scale_min>1</scale_min>
        <scale_max>40000</scale_max>
    </rule>
  
  <rule>
        <condition k="traffic_sign" v="DE:205;215"/>
        <icon annotate="true" src="de_205_215.png"/>
        <scale_min>1</scale_min>
        <scale_max>40000</scale_max>
    </rule>
  
  <rule>
        <condition k="traffic_sign" v="DE:206"/>
        <icon annotate="true" src="de_206.png"/>
        <scale_min>1</scale_min>
        <scale_max>40000</scale_max>
    </rule>
  
  <rule>
        <condition k="traffic_sign" v="DE:211-20"/>
        <icon annotate="true" src="de_211-20.png"/>
        <scale_min>1</scale_min>
        <scale_max>40000</scale_max>
    </rule>
  
  <rule>
        <condition k="traffic_sign" v="DE:215"/>
        <icon annotate="true" src="de_215.png"/>
        <scale_min>1</scale_min>
        <scale_max>40000</scale_max>
    </rule>
  
  <rule>
        <condition k="traffic_sign" v="DE:222-20"/>
        <icon annotate="true" src="de_222-20.png"/>
        <scale_min>1</scale_min>
        <scale_max>40000</scale_max>
    </rule>
  
  <rule>
        <condition k="traffic_sign" v="DE:274.1-50"/>
        <icon annotate="true" src="de_274-1-50.png"/>
        <scale_min>1</scale_min>
        <scale_max>40000</scale_max>
    </rule>
  
  <rule>
        <condition k="traffic_sign" v="DE:274.2-50"/>
        <icon annotate="true" src="de_274-2-50.png"/>
        <scale_min>1</scale_min>
        <scale_max>40000</scale_max>
    </rule>
  
  <rule>
        <condition k="traffic_sign" v="DE:274.1:30"/>
        <icon annotate="true" src="de_274-1-50.png"/>
        <scale_min>1</scale_min>
        <scale_max>40000</scale_max>
    </rule>
  
  <rule>
        <condition k="traffic_sign" v="DE:274.2:30"/>
        <icon annotate="true" src="de_274-2-50.png"/>
        <scale_min>1</scale_min>
        <scale_max>40000</scale_max>
    </rule>
  
</rules>

Dann hab ich jedes einzelne Symbol dieser Datei unter “Symbolpfad” noch hinzugefügt.
Es sind alles .png-Dateien mit 16x16 Pixel.

Wenn ich jetzt zum Test (nach Neustart!) traffic_sign=DE:205 eingebe, wird immernoch ein normaler, roter Node angezeigt.

Was hab ich falsch gemacht?

keine ahnung ;(

aber jetzt ohne scherzerei:

mach es doch erst einmal GANZ EINFACH. EIN Symbol, EIN ganz einfacher Tag (ohne sonderzeichen), keine besonderen attribute. einfach halt.

wenn du dann endlich was auf dem schirm siehst, kannste weitermachen.

gruss

wambacher

ach ja, starte josm im kommandofenster, dann siehst du alle fehlermeldungen.

Im Kommandofenster zeigt es an, dass es die ganzen Bilder nicht laden kann.
Ich frag mich aber warum, hab an den Bildern nichts gemacht, seit ich die Pfade angegeben hab.

Änder die Zeile

<rules name="verkehrszeichen">

in

<rules description="verkehrszeichen">

Und der Symbolpfad, den du in den Einstellungen gesetzt hast, zeigt auch auf den Ordner mit den Bildern?

Hab das jetzt mal zu “rules description” geändert.
jetzt bekomm ich immerhin mal weiße Quadrate anstatt roter Nodes angezeigt :smiley:
Einen Ordner als Symbolpfad kannich nicht angeben, der ist nach dem Neustart wieder weg.
Ich kann nur jedes einzelne Bild direkt als Pfad angeben.

Also ich habe in meinem JOSM-Ordner den Ordner images angelegt und C:\Program Files (x86)\JOSM\images als Pfad angegeben, im Stylesheet sind nur die Dateinamen der Bilder und alles funktioniert, auch nach dem Neustart. Ist das vielleicht wieder sowas banales, wo man nach Eingabe des Pfades erst mal Enter drücken muss, damit die Einstellung übernommen wird?

grummel räusper

Jaaaa… :roll_eyes:
Shame on me!

Ist aber auch dumm gemacht, dass man zuerst ne Bilddatei im Ordner auswählen muss,
den Dateinamen wegmachen, damit man nur den Ordner hat und dann noch enter drücken muss.
Ordner direkt auswählen geht nicht in diesem Explorer-Dingens.

Vielen Dank für eure Hilfe! :slight_smile:

Viele Grüße,
KaChing_Cacher.