Jetzt kostenlos registrieren: Mitglieder surfen ohne Werbung!

HowTo: Kartendarstellung/Typefile modifizieren

  • 11 Antworten
  • Neuester Beitrag
Diskutiere HowTo: Kartendarstellung/Typefile modifizieren im Osmand im Bereich Karten und Navigation.
Lenoid

Lenoid

Lexikon
Da es in einem anderen Thread eine Anfrage dazu gab, die zu sehr OT gehen würde, eröffne ich hier einen separaten Thread für die Modifizierung der Kartendarstellung in OsmAnd.
Vorweg: es sind zwingend Basiskenntnisse zur OpenStreetMap nötig und auch Textdateien mit Code sollten nicht abschrecken. Ohne diese Kenntnisse wird es schwer bis unmöglich etwas sinnvoll zu modifizieren. Wer z.B. bereits für Garmin sein eigenes Typefile erstellt hat, wird das sicher auch für OsmAnd hinbekommen.

Grundsätzlich ist es so, dass OsmAnd XML-Dateien für das Kartenrendering nutzt. Diese kommen dann in den Ordner "rendering" und nach dem nächsten Start von OsmAnd kann man sie dann auswählen. Die Mitgelieferten findet man hier:
osmandapp/OsmAnd-resources
2 weitere ehemals mitgelieferte hänge ich an und ein weiteres sehr gutes bekommt ihr hier:
Osmand - OpenFietsMap

Meins ist auch nur ein etwas modifiziertes ehemaliges mitgeliefertes, bei dem ich ein paar Kleinigkeiten ganz speziell auf meine Bedürfnisse angepasst habe. Anderen wird es wahrscheinlich wenig nützen. Aber das ist ja die Stärke von OsmAnd, man kann es komplett auf die eigenen Bedürfnisse anpassen, anstatt den vorgegeben Einheitsbrei, der z.B. im Falle von Google Maps immer schlimmer wird (da werden z.B. Wälder ausgeblendet, wenn man nah ranzoomt und Kontraste kennt Google auch nicht mehr), nutzen zu müssen.

Ich würde auch empfehlen ein mitgeliefertes Typefile zu modifizieren, anstatt selbst eins zu entwerfen, denn daran würdet ihr ewig sitzen. ;)
Probiert daher erst einmal in OsmAnd aus welches eurem Zweck am nächsten kommt und nehmt das dann als Grundlage. Der default.render.xml (die standardmäßige Kartendarstellung von OsmAnd) ist höchstwahrscheinlich ohnehin die Basis und euer Typefile nimmt "nur" Änderungen daran vor, die zwar vielleicht klein erscheinen, aber eine große Wirkung haben. Man erkennt es an dem Eintrag "depends=*" (normalerweise direkt am Anfang der XML Datei), welcher angibt, welche Kartendarstellung die Basis sein soll. "depends="default"" wäre dann die standardmäßige Darstellung von OsmAnd (default.render.xml). In diesem Fall würde die neue Kartendarstellung nur die Änderungen ggü. der standardmäßigen von OsmAnd angeben.

Die Erstellung/Bearbeitung eines Typefiles geht mit jedem vernünftigen Texteditor und somit unter jedem OS, sogar Android. Unter Windows würde ich Notepad++ empfehlen, da es im Gegensatz zum mitgelieferten Editor/Notepad alles farblich hervorhebt.

Habt ihr ein Typefile geladen, dann gibt es hier eine kleine Einführung mit wichtigen Hinweisen :
https://osmand.net/help/docs/Custom_Rendering_How-To.htm
Bedenkt dabei, dass zwingend OpenStreetMap-Kenntnisse erforderlich sind. Sonst wisst ihr nicht, was ihr anpassen müsst.
Die Farben werden übrigens nach HTML-Farbcodes erzeugt. Ihr könnt sie hier berechnen bzw, umrechnen:
HTML Farbencodes
Convert between color formats (HEX, RGB, HSL, HSV, CMYK)

Noch ein Hinweis: geht immer Schritt für Schritt vor und testet euren Kartenstil besonders nach größeren Änderungen regelmäßig. Manchmal gibt es unerwünschte Nebenwirkungen. Beispielsweise kann die Reihenfolge in der einzelne Typen der OSM gerendert werden sollen die entscheidende Rolle spielen. Bei mir wurden beispielsweise mal Straßen nicht zuverlässig gerendert, weil ich Wege zu sehr priorisiert hatte. Wenn man dann regelmäßig getestet hat, kann man die Ursache wesentlich leichter eingrenzen.
Generell braucht ihr wahrscheinlich Geduld bis ihr den Dreh raus habt (abhängig von dem was ihr vorhabt). Die Geduld zahlt sich jedoch aus.

Die XML-Datei muss mit .render.xml aufhören (z.B. Mein-Kartenstil.render.xml), sonst wird er wahrscheinlich nicht erkannt. OsmAnd muss nach jeder Änderung neu gestartet werden (richtig beenden, nicht nur auf den Homescreen und wieder zurück), damit die Änderung aktiv wird (neue oder geänderte XML-Datei).

Zum schnellen testen eurer neuen Kartendarstellung könnt ihr auch dieses Tool testen, anstatt die XML-Datei extra auf ein Android Gerät zu kopieren:
OffRoad
Die XML-Datei muss dann in "C:\Users\DEIN_BENUTZERNAME\.OffRoad\rendering_styles". Das Tool danach neu starten.
Das Tool kann nicht ansatzweise mit OsmAnd mithalten, v.a. mit der Performance und Inputlag, aber für einen schnellen Test reicht es.


Hier gibt es übrigens eine Legende des standardmäßigen Kartenstils:
OsmAnd - Offline Mobile Maps and Navigation

Erfahrungsaustausch ist hier ausdrücklich erwünscht! Fragen natürlich auch. Ich nehme auch gerne Ergänzungen an dieser kleinen Einführung vor, wenn ihr welche habt.
 

Anhänge

  • old-typefiles.zip
    2,4 KB Aufrufe: 26
Zuletzt bearbeitet:
vonharold

vonharold

Stammgast
Hallo @Lenoid,

vielen Dank für die gesammelten Links und die guten Erklärungen.
Ich habe mir mal die typefiles von Dir in Osmand installiert.
Die sehen ja richtig gut aus.

Das beste ist auch das Kontrastreiche mit der blauen Autobahn. Sehr gute Arbeit.

Hast Du auch noch was neues und noch besser? Da Du die ja als "old" bezeichnet hast.

Aber zwischen Garmin Typfiles und Osmand ändern, liegen schon ein paar Welten dazwischen.

Arbeitest Du da wirklich nur mit dem Notepad++?
Bei Garmin hatte ich damit ein wenig Unterstützung gehabt. TYPWiz5 Advanced TYP Editor
 
Zuletzt bearbeitet:
Lenoid

Lenoid

Lexikon
vonharold schrieb:
Ich habe mir mal die typefiles von Dir in Osmand installiert.
Die sehen ja richtig gut aus.

Das beste ist auch das Kontrastreiche mit der blauen Autobahn. Sehr gute Arbeit.

Hast Du auch noch was neues und noch besser? Da Du die ja als "old" bezeichnet hast.
Die sind nicht von mir, die wurden nur früher mit OsmAnd mitgeliefert, aber irgendwann rausgeschmissen. Warum verstehe ich auch nicht.

vonharold schrieb:
Arbeitest Du da wirklich nur mit dem Notepad?
Bei Garmin hatte ich damit ein wenig Unterstützung gehabt. TYPWiz5 Advanced TYP Editor
Ja (mit Notepad++), das habe ich schon bei GpsMid, falls du das noch kennst (ist für JavaME).
Garmin hatte ich vor vielen Jahren auch mal editiert, als ich noch Basecamp nutzte. Ich weiß aber nicht mehr genau wie ich das angestellt hatte. Da TYPWiz 5 Payware ist, war es das sicher nicht. Wahrscheinlich erleichtert es das ein wenig, wobei gewisse Vorkenntnisse wohl ebenso erforderlich sind.
Deswegen sage ich auch, man braucht bei OsmAnd Geduld und nimmt am Besten einen bestehenden Kartenstil (auch weil die OSM brutal viele unterschiedliche Daten liefert, die man erst einmal visualisieren müsste). Solche Dinge wie Farben sind recht schnell geändert. In dem OpenFietsMap-Kartenstil wäre das z.B. für Autobahnen die Zeile 258 (tag=highway und value=motorway; deswegen braucht man OSM-Kenntnisse), wo #8389E1 die Farbe hellrot darstellt. Die Farben sind übrigens die HTML Farbencodes, was auf den ersten Blick vielleicht verwirrend ist, aber entsprechend nahezu jede Farbe möglich macht. Hier kann man sie umrechnen (ich ergänze das im Eingangspost noch:
HTML Farbencodes
Convert between color formats (HEX, RGB, HSL, HSV, CMYK)
Würde man die #8389E1 durch #000000 ersetzen, würden die Autobahnen schwarz werden. Ab Zeile 273 kann man mit strokeWidth festlegen wie breit die Straßentypen dieser Gruppe dargestellt werden (ein höherer Wert ist breiter, ein niedrigerer ist schmäler). Das mal als kleines Beispiel.

Ich bin mir nicht 100%ig sicher, aber der default.render.xml ist immer die Basis und mit dem anderen Kartenstil werden nur Veränderungen durchgeführt. Sieht man gut an der OpenFietsMap, deren Code recht übersichtlich ist, aber dennoch alle OSM-Infos dargestellt werden. Hauptunterschiede sind die Farben von Straßen und Flächen und ggf. noch die Breite von Straßen. Also nur wenig Änderungen, aber mit großem Effekt.

Man muss sich da ein wenig einarbeiten und verstehen wie das funktioniert. Die OpenFietsMap ist sehr gut zum lernen. Das dauert vielleicht ein paar Stunden, aber wenn man den Dreh raus hat, hat man ein mächtiges Werkzeug.
Ich weiß nicht, ob es einen Editor gibt, der einem den Einstieg ein wenig erleichtert, ich gehe aber nicht davon aus. Wäre aber sicher eine tolle Sache.
 
vonharold

vonharold

Stammgast
Hallo zusammen,

es gibt scheinbar einen Editor: Neuer Editor für OpenStreetMap

Bin mal fleißig daran mich einzulesen in die Thematik des Typefiles. Habe auch schon ein paar fertig konfigurierte runter geladen in im Ordner eingefügt. Ist schon eine feine Sache. War schon bei Garmin begeistert davon mein eigenes Typefile zu machen. Mal schauen, ob ich mir das zutraue und auch zeitmässig unterbringe.
 
cptechnik

cptechnik

Moderator
Teammitglied
Nur mal um ganz doof nachzufragen...
... Das alles machst Du um die Karte in anderen Farben aussehen zu lassen?
... Wie sieht sowas (ausschnittsweise) aus?
 
vonharold

vonharold

Stammgast
Hallo @cptechnik,

hast Du OsmAnd auf dem Handy, dann lade die mal die verlinkten *.xml Dateien in den von @Lenoid vorgeschlagenen Ordner und wähle das Thema aus und Du wirst sehen was passiert.
 
cptechnik

cptechnik

Moderator
Teammitglied
Wenn das schon jemand gemacht hat ist es für diesen einfacher einen Screenshot zu Posten, als für mich das zu installieren...
Ich habe kein persönliches Interesse daran, würde aber gerne wissen wie es aussieht...
 
Lenoid

Lenoid

Lexikon
vonharold schrieb:
Der ist für die OSM, nicht OsmAnd. Man muss zwischen beiden unterscheiden. Die OSM liefert die Rohdaten der Karten im Vektorformat und OsmAnd ist die App, die diese dann visualisiert. Die OSM kann man natürlich auch online anschauen. Und das Beste: jeder kann mitmachen und sie ergänzen und Fehler korrigieren. Daher ist sie mMn zumindest hierzulande das beste öffentliche Kartenmaterial, das man bekommen kann.

vonharold schrieb:
Hallo @cptechnik,

hast Du OsmAnd auf dem Handy, dann lade die mal die verlinkten *.xml Dateien in den von @Lenoid vorgeschlagenen Ordner und wähle das Thema aus und Du wirst sehen was passiert.
Das ist nicht einmal nötig, da OsmAnd schon eine ganze Ladung mitbringt. Für nautisch und Ski braucht man allerdings die entsprechenden Plugins aus dem PlayStore.

cptechnik schrieb:
Nur mal um ganz doof nachzufragen...
... Das alles machst Du um die Karte in anderen Farben aussehen zu lassen?
Doof ist die Frage nicht. Zumindest wenn die Vorstellungskraft fehlt, was das ausmachen kann. ;)
Und die Antwort lautet Jain. Ja, weil ich auch Farben ändere, nein weil ich das nicht mache, damit es schön bunt ist, sondern um mir beispielsweise bestimmte Arten von Wegen hervorzuheben, die mir wichtig sind. Beispielsweise asphaltierte Wege bzw. solche, die einen guten Belag haben. Standardmäßig gehen die nämlich schnell unter oder sind kaum bis gar nicht von schlechteren unterscheidbar.

cptechnik schrieb:
... Wie sieht sowas (ausschnittsweise) aus?
Hier ein Ausschnitt von Heidelberg mit mehreren mitgelieferten bzw. den im Eingangsbeitrag angehängten Kartendarstellungen (unterschiedliche Darstellungsoptionen sind auch aktiviert; bei #3 und #4 ist der Ausschnitt leider verrutscht, was ich erst jetzt sehe):

UniRS:
#unirs.JPG
Topo:
#topo.JPG

Offroad:
#offroad.JPG

Cyclemap:
#cycle.JPG

Und hier Hamburg in "nautisch":
#nautisch.JPG
 
vonharold

vonharold

Stammgast
Hallo @Lenoid,

bin gerade dabei ein paar Übungsfile zu testen.
Die Autobahn ist mein angestrebtes Übel.
value="motorway"

Weißt Du wie man die so verändern kann wie das Bild.
Bei Garmin habe ich ich die Ränder blau eingefärbt und breiter gemacht, danach das innere weiß und dünner gemacht. So dass ich wieder auf der normale Gesamtbreite war, wie am Anfang.

Bis jetzt habe ich aber nichts gefunden, was in den Rand und Strassenbreite eingreift.
Mein Testobjekt ist zurzeit die "OpenFietsMap.render.xml"

Es dürfen sich auch andere User an dem Thema beteiligen.
Danke schon mal im Voraus für die Hilfe.
 

Anhänge

Zuletzt bearbeitet:
Lenoid

Lenoid

Lexikon
@vonharold
Das hängt natürlich stark von deiner Vorlage ab, die zum Glück erwähnt hast (und die auch sehr gut zum üben ist). :)

Vorweg: zum schnellen testen deiner neuen Kartendarstellung kannst du auch dieses Tool testen, anstatt es extra auf ein Android Gerät zu kopieren:
OffRoad
Die XML-Datei muss dann in "C:\Users\DEIN_BENUTZERNAME\.OffRoad\rendering_styles". Das Tool danach neu starten.
Das Tool kann nicht ansatzweise mit OsmAnd mithalten, v.a. mit der Performance, aber für einen schnellen Test reicht es.

Jetzt aber zu deinem Anliegen:
Da OpenFietsMap mehrere Straßentypen von der Autobahn bis zur Secondary Road gruppiert (nicht die Farben, aber z.B. die Breite) und du nur nach Autobahnen gefragt hast, habe ich die beiden Einträge für Autobahnen und Autobahnabfahrten aus der Gruppe ab Zeile 257 gelöscht und eine neue Gruppe erstellt, die ich mir aus Touring-view_(more-contrast-and-details).render.xml geborgt habe. Diese neue Gruppe sieht so aus:
Code:
        <group>
            <filter  tag="highway" value="motorway" color="#FFFFFF" color_0="#08088A"/>
            <filter  tag="highway" value="motorway_link" color="#FFFFFF" color_0="#08088A"/>
            <groupFilter>
                <filter minzoom="5" maxzoom="6" strokeWidth="1" strokeWidth_0="3"/>
                <filter minzoom="7" maxzoom="7" strokeWidth="1.3" strokeWidth_0="4"/>
                <filter minzoom="8" maxzoom="8" strokeWidth="1.7" strokeWidth_0="5"/>
                <filter minzoom="9" maxzoom="9" strokeWidth="2" strokeWidth_0="6"/>
                <filter minzoom="10" maxzoom="10" strokeWidth="2.3" strokeWidth_0="7"/>
                <filter minzoom="11" maxzoom="11" strokeWidth="2.7" strokeWidth_0="8"/>
                <filter minzoom="12" maxzoom="12" strokeWidth="3" strokeWidth_0="9"/>
                <filter minzoom="13" maxzoom="13" strokeWidth="3.3" strokeWidth_0="10"/>
                <filter minzoom="14" maxzoom="14" strokeWidth="4" strokeWidth_0="12"/>
                <filter minzoom="15" maxzoom="15" strokeWidth="5" strokeWidth_0="15"/>
                <filter minzoom="16" strokeWidth="6.7" strokeWidth_0="20"/>
            </groupFilter>
        </group>
In Offroad dann so:
autobahn.JPG
Ich denke das kommt halbwegs hin, das Blau musst du ggf. anpassen. Da ich nicht wusste wie breit die Autobahnen im Vergleich zu den anderen Straßen sein sollen, habe ich die Werte von Touring-view_(more-contrast-and-details).render.xml 1:1 übernommen. Die Werte mit strokeWidth=* und strokeWidth_0=* müsstest du dann ggf. anpassen.
Die XML habe ich angehängt. Kannst sie mit einem entsprechenden Programm vergleichen, um meine Änderungen vielleicht besser nachvollziehen zu können. Es fehlt zwar die GUI du sie von TypWiz kennst, aber es ist im Prinzip recht einfach.

Wenn du nur die Farben hättest ändern wollen und nicht die Breite oder diese Breite dann auch für die anderen 3 Straßentypen (Trunk bis Secondary Road) nutzen wolltest, dann hätte es auch gereicht nur die beiden Farben in Zeile 258 zu ändern.

P.S.: "depends=*" (normalerweise direkt am Anfang der XML Datei) gibt an, welche Kartendarstellung die Basis sein soll. "depends="default"" wäre dann die standardmäßige Darstellung von OsmAnd (default.render.xml). In diesem Fall würde die neue Kartendarstellung nur die Änderungen ggü. der standardmäßigen angeben.
 

Anhänge

  • OpenFietsMap-autobahn.render.xml
    29 KB Aufrufe: 10
vonharold

vonharold

Stammgast
Hallo @Lenoid,

das Typefile ist perfekt, da werde ich nichts mehr groß ändern.
Nur noch das blau gewählt: #2E2EFE
Der Rest bleibt so. Ich muss das Rad ja nicht neu erfinden.

Ich steh halt auf diese blau/weiße Autobahn (in DE sind die Schilder ja auch so). Ich habe bei den Strassenkarten und bei den anderen Navis schon immer alle anderen Autobahnfarben gehasst.

Deswegen habe ich bei Garmin damit angefangen das zu ändern. Garmin versuche ich langsam zu verdrängen, weil ich dazu immer ein Windows brauche um die Update zu machen. Stelle jetzt langsam alles auf Linux am PC um.

Somit hast Du mich absolut glücklich gemacht.

Danke für die ganze Hilfe....
 
Lenoid

Lenoid

Lexikon
vonharold schrieb:
Ich steh halt auf diese blau/weiße Autobahn (in DE sind die Schilder ja auch so). Ich habe bei den Strassenkarten und bei den anderen Navis schon immer alle anderen Autobahnfarben gehasst.
Kann ich nachvollziehen. Bei UniRS, was ich standardmäßig nutze, sind sie zum Glück schon (hell)blau.

vonharold schrieb:
Deswegen habe ich bei Garmin damit angefangen das zu ändern. Garmin versuche ich langsam zu verdrängen, weil ich dazu immer ein Windows brauche um die Update zu machen. Stelle jetzt langsam alles auf Linux am PC um.
Garmin fand ich wegen den Restriktionen nie wirklich gut. Ok, Navigon ist mMn das beste Navi für Android und OOTB gut, aber bei den anderen Dingern legt Garmin mMn viel zu viele Steine in den Weg. Wegen Linux schreib ich bei Gelegenheit eine PN. Das Thema interessiert mich auch brennend, ist hier im Forum aber total OT. :1f606: Ok, fast, Android hat mit Linux ja viel gemeinsam.

vonharold schrieb:
Somit hast Du mich absolut glücklich gemacht.
Gerne geschehen, freut mich sehr. Ich hoffe du hast die enormen Möglichkeiten, die OsmAnd bietet, erkannt.;)

OsmAnd bietet übrigens bei der Kartenkonfiguration auch unterschiedliche "Straßendarstellungen", u.a. nach dem dt. Straßenatlas (Autobahnen: rot-gelb). Die sind in der default.render.xml hinterlegt (einfach nach "germanRoadAtlas" suchen). Theoretisch müsste man weitere Straßendarstellungen erzeugen können, sodass die im Menü auftauchen, aber ich weiß nicht, wie man die übersetzt.
Die default.render.xml sollte man übrigens nicht verändern (wie auch die anderen mitgelieferten), da die immer wieder aktualisiert und bei einem App-Update wahrscheinlich überschrieben werden. Möchte man UniRS verändern, würde ich das mit einer neuen XML, die sich per "depends=UniRS" auf UniRS.render.xml bezieht. Man kann auch die UniRS.render.xml kopieren und umbenennen, dann bekommt man aber nicht deren Updates.