Plattformunabhängiger TYP-File Editor für Garminkarten

Hallo,

der Online TYP-File Editor unter:
http://ati.land.cz/gps/typdecomp/

will ja zum Ende dieses Sommers schließen. Außerdem stoße ich bei diesen Editor jetzt auch noch auf ein Dateigrößenproblem, so das ich keine weiteren POIs mehr aufnehmen kann. Daher die Frage: Gibt es sonst noch einen Online TYP Editor oder eine Software die Plattformunabhängig läuft?

Ich habe bislang nur Windows-Software gefunden, ich habe aber kein Windows sondern nutze primär OpenBSD. Wenn es etwas für Linux gibt, wäre das eventuell auch interessant oder aber ein Java-Programm.

Gruß
unixasket

Nicht das ich wüsste. Ist auch mein Problem. Da ich aber für BaseCamp ohnehin eine Win-VM laufen hab, mache ich Arbeiten am TYP-file auch dort. Evtl. wäre das eine Notlösung. Das compilieren macht ja mkgmap schon. Es bräuchte nur eine GUI, die ein txt-File schreibt. Leider fehlt mir sowohl das Können einer universellen Programmiersprache als auch die Zeit.

Du kannst einen Texteditor und mkgmap nehmen … ansonsten wäre das Programm TypViewer (Windows) zu empfehlen.

Gruß Klaus

Hast du das mit dem Texteditor schonmal versucht? Ich hab das schneller wieder aufgegeben, als ich es begonnen hatte. Es braucht schon verdammt viel Vorstellungskraft wenn man komplexere Icons haben möchte. Für kleine Änderungen ist es ok, aber für größeres finde ich es unbrauchbar.

Ich finde keine Option bei mkgmap um aus einer Textdatei eine TYP-Datei zu machen. Verarbeitet mkgmap die Textdateien einfach genauso wie TYP-Dateien?

Für kleine Änderungen mag ja das direkte editieren OK sein, ich bin es auch gewohnt mit Scripts und Kommandozeilen umzugehen, aber Icons umfangreich in einer Textdatei zu editieren ist wirklich nicht unbedingt ideal. Zumal man bei Icons das Ergebnis erst in der fertigen Karte sieht.

Gruß
unixasket

Einfach die txt neben den Kartentiles mit übergeben.

Super, danke.

Ich habe übrigens eine einfache Methode für Icons im Texteditor gefunden: Ich erstelle das Icon ganz normal in Gimp und konvertiere es dann in ein XPM. Dann die XPM-Datei in einem Texteditor öffnen und voilá man hat die Icondefinition im Texteditor. Das ganze ist dann natürlich nicht so komfortabel wie in einem TYP-Editor, aber immerhin machbar.

Gruß
unixasket

Also ich nutze TYPViewer mit Wine. Habe bisher aber nur kleine Anpassungen an Typs gemacht. Ich kann also nicht sagen, ob es den vollen Ansprüchen genügt.

Happy Mapping

Wine und OpenBSD vertragen sich leider nicht. Es gab mal eine sehr alte Wine-Version die mit OpenBSD lief, aber dann wurden Änderungen an Wine vorgenommen, die inkompatibel zu OpenBSD waren und schließlich wurde Wine aus dem Portstree von OpenBSD rausgeworfen. Über kurz oder lang werde ich wohl doch mal wieder ein Windows kaufen müssen und eine extra Partition dafür abstellen müssen.

Gruß
unixasket

Vor Windowskauf kannst du auch ReactOS dafür probieren. :wink:

Map Composer ist eine GUI, die unter anderem ein Textfile für TYP Files schreibt. Allerdings nicht für mkgamp sondern für cgpsmapper als Compiler. Keine Ahnung ob das dasselbe Format ist oder ganz was anderes.

bye, Nop

Nimm doch eine VM mit z.B. Ubuntu und dann Wine

Gruß
Walter

Hab mal gestern in deren Forum geschaut. Es gibt da jemanden, der die Sache hosten würde und dieser versucht nun, vom Autor die Gui zu bekommen. Wär doch was, gell?

Gruss
walter

:slight_smile: :slight_smile: :slight_smile: Der jemand war ich, werd ich aber wohl doch nicht machen da ich jetzt für mich eine Möglichkeit gefunden habe das halbwegs vernünftig direkt im Texteditor zu machen. Icons erstellt weiterhin Gimp und diese werden dann in die Textconfig einfach eingefügt. vim ist ein Prima Editor der auch Makros kennt etc. Ich schreibe mit vim übrigens sogar komplexe Websites inklusive ellenlanger CSS Definitionen etc. Meine ~/.vimrc ist ziemlich lang (und mein Nickname kommt nicht von ungefähr).

Gruß
unixasket

Emacs kann sogar vim emulieren. Und ich bearbeite damit auch OSM.

SCNR

Kann der Composer auch vorhandene Txt-Files importieren? Wäre es denkbar, den Teil mit den Teil mit den Kartenobjekten und dem schreiben und lesen von txt-Files als Eigenständiges Programm anzubieten?

Zwar wurde hier schon bemerkt, dass das geht - aber ohne binäre TYP Datei bereitet die Nutzung einer solchen Karte z.B. mit “QLandkarte GT” nicht so richtig Freude. Daher: Aus einer TYP Textdatei kann man eine anderswo nutzbare binäre machen, indem man diese einfach separat mkgmap zum Fraß vorwirft:

java -jar mkgmap.jar typdatei.txt

Heraus purzelt eine Datei “typdatei.typ”. Heißa, mein Framework um unter Unix aus einer Sammlung PNGs via XML Definition nun eine ordentliche TYP Datei zu erzeugen funktioniert nun (für den von mir benötigten Funktionsumfang) :slight_smile:

Könntest du erklären, wie dein Framework funktioniert?

Im Wesentlichen ist das Framework aktuell ein Script mit Verzeichnisstruktur, geschrieben in Tcl (8.5). Es benötigt das Tcl Paket “tDom”, sowie ImageMagick (convert und identify) und iconv. Und natürlich auch mkgmap…

Zunächst ein paar Bemerkungen zu TYP Textdateien:

So eine TYP Textdatei enthält nichts anderes als hinterienander geschriebene XPM Grafiken. Auf meinem Linux finden sich aber auch binäre XPMs - und auch welche mit einem SVG-Vectorformat. Dazu kommt, dass das XPM Format für mkgmap nicht nur das gewöhnliche ASCII Format sein muss, sondern Farbnamen wie “gray100” tabu sind (und wer nun tapfer einfach “suchen&ersetzen” spielt, wird mit “gray10” und “gray100” Probleme bekommen, bzw. auch wenn die Pixel selbst zufällig mit dieser Zeichenfolge codiert wurden). Korrekte XPMs zu erstellen ist etwas komplizierter als man zunächst annimmt.

Auch jene Linien, die man mit Border + Farbwert usw. definiert, lassen sich problemlos mit 2farbigen Grafiken abbilden (was hinter den Kulissen m.E. ohnehin geschieht). Hier kann man also die Definition der Elemente vereinfachen bzw. vereinheitlichen.

Haken an dieser TYP Textdatei ist, dass sie sehr unschön zu bearbeiten ist - und gerne die 100kB übersteigt. Und da kam mein Gedanke, die Grafiken auszulagern - und im XPM-Format mag ich die ohnehin nicht um sie später mal wieder weiter zu bearbeiten. Genauer: Das Grafikformat ist eigentlich völlig egal, denn konvertieren kann man ja automatisiert mit ImageMagick. Es dürfen also auch TIFFs, JPEGs, GIFs und was auch immer sein :slight_smile:

Die Definition, welcher Garmin-Code zu welcher Grafik gehört, sehe ich in einer XML Datei gut aufgehoben. Für die Bearbeitung einer solchen XML Datei kann man später ja immer noch eine GUI basteln… (oder einen Viewer in PHP für den Webbrowser). Aktuell sieht eine XML TYP Datei so aus:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<typ>
  <header>
    <family_id>2807</family_id>
    <product_id>1</product_id>
    <codepage>1252</codepage>
  </header>
  <polygons>
    <level>
      <element type="0x02"><color>#e3e3e3</color></element>
      <element type="0x16">
        <img>wald_hell_nadel.png</img>
        <txt lang="en">Forest</txt>
        <txt lang="de">Wald</txt>
      </element>
    </level>
    <level>
      <element type="0x10">
        <img>fels_und_geroell.png</img>
        <txt lang="en">Scree / Rocks</txt>
        <txt lang="de">Felsen / Geröll</txt>
      </element>
    </level>
  </polygons>
  <lines>
    <element type="0x00"><img>highway_road.png</img></element>
    <element type="0x10f0c">
      <img>barrier_hecke.png</img>
      <txt lang="en">Hedge</txt>
      <txt lang="de">Hecke</txt>
      <font>hidden</font>
    </element>
  </lines>
  <points>
    <element type="0x04">
      <img>punkt.png</img>
      <font>big</font>
    </element>
    <element type="0x51">
      <img>telefon.png</img>
      <txt lang="en">Phone</txt>
      <txt lang="de">Telefon</txt>
    </element>
  </points>
</typ>

Die Grafiken liegen in den Verzeichnissen “lines”, “points” und “polygons”. Das obige Beispiel hätte bei den Polygonen lediglich 2 Level. Die Konvertierung der Farbnahmen in RGB-Hex-Codes geschieht mittels der offiziellen Tabelle aus “/usr/share/X11/rgb.txt” (die nutzt “convert” wohl auch umgekehrt). Starte ich mein Script “mkgtyp.tcl”, so wird die Datei “2807.txt” und “2807.TYP” erstellt (“2807” entsprechend family_id). Die Texte (Sonderzeichen/Umlaute) sind in auch CP1252 (auch wenn diese Umwandlung noch hart codiert ist). ImageMagicks “convert” bekommt den Parameter “-colors” mit einem Wert den “identify” zuvor ermittelt - sonst hat man sehr viel Datenmüll, da “convert” jedem Pixel einen neuen Farbidentifikator zuweist sofern das ebenfalls gesetzte Limit von 8bit Farbtiefe noch nicht verbraucht wurde… usw.

Aktuell erhält man nur TYP Dateien mit einfacher Transparenz - die “Semi-Alphakanal-Auswertung” habe ich noch nicht umgesetzt (und nutze sie auch nicht). Ich habe aber nicht vor das als neues Softwareprojekt öffentlich anzubieten - um so ein Projekt muss man sich auch kümmern, und dafür habe ich keine Resourcen frei (da würde es wohl mehr Sinn machen, mein ganzes Environment zum Garminkartenbastelt endusertauglich anzubieten). Zumal es nicht sooo viele sein dürften, die so etwas überhaupt einsetzen würden. Falls wer sich daran probieren möchte und auch keine Probleme hat wenns nicht out of the box zum eigenen Rechner passt, der darf sich gerne melden.

An so eine XML-Geschichte zum Erzeugen von TYP files aus einer XML-Datei und diversen Grafikdateien hatte ich auch schon mal gedacht, daher wäre ich durchaus interessiert, mir dieses Framework mal anzuschauen. Bisher nutze ich eine Textdatei und mkgmap, aber da hat man doch ziemlich viele redundante Daten drin, die eine Wartung relativ schwierig machen.