Betrachte 15 Beiträge - 1 bis 15 (von insgesamt 15)
  • Autor
    Beiträge
  • #8093
    wernerschka
    Teilnehmer

    Hallo,
    mir sind 2 Sache im Hiking-Theme aufgefallen, die die Beschriftung von Wanderrouten betreffen:
    zur Kontrolle dient http://hiking.waymarkedtrails.org/

    1)
    http://www.openstreetmap.org/way/42227264
    http://www.openstreetmap.org/way/42325793

    Über diese beiden Wege verlaufe 3 bzw. 2 Wanderrouten, teilweise mir ref=*, teilweise ohne. Beschriftet wird in den Abschnitten wo mehrere Wanderrouten gleichzeitig verlaufen aber keine einzige Ref.

    2)
    http://www.openstreetmap.org/way/42225206
    in diesem Weg überschneidet eine Radroute die Wanderroute. Im Hiking-Theme wird nur die Ref der Radroute (R10) auf der Hikingroute angezeigt. Dies ist mehr als verwirrend, da an sich ja der weitere Verlauf der Radroute abseits des Wanderroute nicht gerendert wird.

    Bitte keine Ref von anderen Routentypen auf der Hikingkarte anzeigen. Oder alternativ als Layer zuschaltbar, dann aber den Gesamtverlauf der Radrouten samt Ref-Beschriftung.

    #8100
    Avatar-FotoTobias
    Administrator

    Ich glaube das liegt nicht am Theme sondern an der Routenauflösung in den Karten. Die ist recht aufwendig, da kann Dir Christian besser Auskunft geben.

    Developer of Elevate mapstyle

    #8102
    Avatar-FotoChristianK
    Administrator

    Hallo Werner,

    Die Routenauflösung (= die Tags der Relationen auf die Wege vererben) ist das kniffligste Problem der Vectorkarten. Dies geht weit über die eigentlichen Möglichkeiten von Mapsforge hinaus und ist nur mit einigen Abstrichen überhaupt machbar.
    Das ist auch der Grund warum nur die OAM und LoMaps dies überhaupt anbieten.

    Grundsätzliches: Ich kann nur EIN ref-tag pro Weg hinterlegen, also hinterlege ich jenes der höchstwertigen Route (icn > ncn > rcn > lcn, analog bei Wanderwegen) ist bei dieser kein ref hinterlegt dann wars das leider. Jetzt könnte ich natürlich prüfen ob mehrere Relationsverweise auf den selben Weg zeigen und diese als String zusammensetzen. Was bei einem (selbst definierten) Limit von 6 chars per Network + Trennzeichen („/“) einen String von 27 chars ergibt + nochmals das gleiche für die Wanderwege (hknetwork) = 54 Chars. Was zur Folge hat das das Ganze unübersichtlich wird bzw überhaupt nicht mehr am Smartphone gerendert wird. Deswegen nur die höherwertigste Route.

    Wanderwege/Radwege trennen: Das geht nur wenn die Karten selbst in „_hike“ und „_cycle“ getrennt gerendert werden – wie ich es mit Ländern mit extremer Wege-Dichte mache. (de, nl, be..)

    Jetzt wäre es natürlich eine Lösung die ref für Wanderwege in ein „hk_ref“ und jene für die Radwege in ein „cy_ref“ zu schreiben und entsprechend in der Theme „Layern“. NUR: Es gibt nur wenige Tags in denen beliebige Strings gespeichert werden können:
    https://github.com/mapsforge/mapsforge/blob/master/docs/Specification-Binary-Map-File.md#way-properties
    Alle anderen tags müssen dediziert als tag/value Paare definiert sein. Ein HK_RE=* geht nicht, somit auch hier: no way.
    Wäre es möglich würde ich mir eine Menge Rechenzeit ersparen.

    Was möglich wäre ist die Tags der Routen nicht zurück in die referenzierten Wege zu schreiben sondern Kopien der unterlegten Wege zu erzeugen und eigens taggen (für jede Wander/Rad-Route einer). Hier muss man aber die Dimension des Problems betrachten: Für Deutschland werden schon jetzt (Nur Priorität auf höchsten Routenwert) rund 1,3 Millionen Wege über die Routen referenziert. Bei getrennten Wegen für die Routen müssten dann geschätzt 3-4 Millionen Wege NEU erzeugt und am Handy gerendert werden. Das ist von der Performance her völlig undenkbar ausserdem würden die Karten _wesentlich_ grösser.
    Was bei dieser Variante noch hinzu kämne ist das eine Priorität der Routen kaum machbar ist und die die vielen refs sich gegenseitig ins Gehege kommen.

    Sorry – was sich bei der ersten Betrachtung zugegeben als Anfängerfehler anmutet ist leider das Resultat aus einem Slalomlauf zwischen zig Limitierungen der Vectorkarten an sich.

    Die waymarkedtrails (supper Karten – ich liebe sie!) werden auf einem Tileserver erzeugt der Relationen native auflöst, labelkollisionen berücksichtigt und löst etc.. – dafür sind die Karten um den Faktor 10 – 20x grösser.

    Irgendeinen Tod stirbt man immer. 😉

    VG
    Christian

    #8104
    wernerschka
    Teilnehmer

    Hi Christian, na das hört sich ganz schön kompliziert an!

    Vielleicht kann man da und dort unter Berücksichtigung deiner genannten Rahmenbedingeungen trotzdem noch in bischen feintunen:

    – Also du kanns pro way nur einen Ref-tag vergeben, der bei Mehrfachbelegung durch mehrere Routen sowohl Wander- als auch Radrouten berücksichtigen muss.
    – Aus Gründen der Übersichtlichkeit kann dieser Ref-String nur eine gewisse Länge haben (6 Zeichen, wenn ich dich richtig verstanden habe?)
    – wenn der (aufgrund mehrerer Routen) kombinierte Ref-String zu lange werden würde, werden nur die höher kategorisierten Routen berücksichtigt. (iwn&icn > nwn&ncn > rwn&rcn > lwn&lcn)
    – die Frage ist dann was machen wenn selbst nur die höchstwertigen Routen-Refs zu lange werden würden: nur 1,2,3 beliebge daraus auswählen bis die Maximallänge des Strings erreicht ist? Gar keine Ref taggen (so wird es wohl derzeit gehandhabt)?
    Was ist in diesem Fall hilfreicher für den User: gar keine Beschriftung? Beschriftung mit zumindest ein paar Routenrefs aus dem Pool aller Routen?

    Das String-Limit könnte man z.B. auf 7 Zeichen ansetzen, dann könnten etwa 2 dreistellige Wander/Radrouten (plus „/“) dargestellt werden. Hätte den Vorteil, das es schon öfter vorkommt, dass 2 (dreistellige) Wander/Radrouten kurzzeitig parallel verlaufen und diese mit deren Ref in der Karte zu sehen sind.

    Ich bringe noch ein paar Beispiele:
    1)
    http://www.openstreetmap.org/way/38931622
    Dieser way ist Teil zweier rwn (436, 437). Interessanterweise wird derzeit aber nur „436“ gerendert, obwohl beide gleiche Kategorie haben.

    2)
    http://www.openstreetmap.org/way/199652828
    besteht auch aus zwei Routen, diesmal aber mit einer nwn (04) und einer rwn (430). Derzeit wird nur „04“ gerendert, obwohl beide Routen im Ref-String Platz haben würden.

    Einziges „Überlegenswerte“ hier wäre: es wird im Elevate-Style bei gemeinsamenen Routen ja immer die Farbe der höherwertigen Route verwendet, hier als die der nwn. Passt dann nicht „ganz“ wenn im Ref-Tag dann auch die rwn erwähnt wird.
    Aber einerseits tauchen im Hikingstyle teilweise ja auch sogar Wanderweg-Radrouten-Kombinationen auf (was noch „verwirrender“ ist), andererseit finde ich zumindest lieber ein Ref mehr zwecks Nachvollziehbarkeit als auf die Darstellung wegen der Vereinbarkeit mit der Routenfarbe verzichten)

    3)
    http://www.openstreetmap.org/way/70216603
    besteht aus drei Routen: eine nwn (04) und zwei rwn (404, 430). Da der Ref-String aller Routen zu lange werden würde, die höherwertigsten Routen nehmen, also nur „04“. Das wird derzeit eh so gehandhabt. Falls sich hier noch eine icn oder ncn befinden würde, diese dazu nehmen

    #8106
    Avatar-FotoChristianK
    Administrator

    Aber einerseits tauchen im Hikingstyle teilweise ja auch sogar Wanderweg-Radrouten-Kombinationen auf (was noch “verwirrender” ist), andererseit finde ich zumindest lieber ein Ref mehr zwecks Nachvollziehbarkeit als auf die Darstellung wegen der Vereinbarkeit mit der Routenfarbe verzichten)

    Ich muss alle möglichen refs (Wander + Rad) in EIN tag speichern (das ist nicht zu trennen), somit wird auch im Cycle Theme auch die ref der Wanderroute gerendert, das ist im derzeitigen Stand von Mapsforge nicht anders möglich – leider.
    Sauber trenne lässt sich das nur mit ZWEI völlig getrennten Karten – mit der Theme ist hier nichts zu machen.

    Dieser way ist Teil zweier rwn (436, 437). Interessanterweise wird derzeit aber nur “436” gerendert, obwohl beide gleiche Kategorie haben.

    Das hat einen simplen Grund: Ich nehme den ersten way der über eine Relation referenziert wird, dann steigt die Routine aus, der Grund ist die Performance des Scripts. Dieser Teil des Preprozessings ist derart Zeitintensiv das ich dies so geregelt habe. Wenn ich hier alle Referenzen durchackere kann ich den Update-Shedule vergessen.

    Das gilt auch für Punkt 3)

    Ich werde deinen Beitrag zum Anlass nehmen über trotzdem machbare Verbesserungen nachzudenken, wohlwissend das hier Raum für Verbesserungen ist.

    Von der Theme her ist hier Tobias auf verlorenen Posten solange die Datenbasis das nicht hergibt. Denn: ein Weg kann entweder/oder icn,ncn,rcn,lcn (network tag) + iwn,nwn,rwn,lwn (hk_network tag) aber niemals mehrere auf einmal – bitte nimm das als gegeben hin. Das einzige was ich machen kann ist den ref-string genauer zu taggen.
    Wobei, nochmals: Es wird immer vorkommen das es mit der cycle-theme keinen cycle-ref wohl aber einen hike-ref im string gibt, das ist beim derzeitigen Stand von Mapsforge unvermeidlich. Lösen ließe sich das nur wenn wildcard-tags im tagmapping zu definieren wären um die refs von hike und cycle zu trennen.

    VG
    Christian

    #8109
    wernerschka
    Teilnehmer

    Das habe ich schon verstanden, dass pro Way nur ein einzige tag für sämtliche Routen zur Verfügung steht. Wenn du aus Performance Gründen jeweils nur die Refnummer der ersten von deinem Skript bearbeiten Route auf den Way taggst ist auch klar.

    Allerdings was mir noch nicht klar ist: Wieso gibt es dann Wege, die trotzdem mehrfache Routen-Nummer tragen?
    z.B. http://www.openstreetmap.org/way/29403566
    3 Routen darauf (nwn, rcn, lcn) – gerendert werden nwn/rcn

    oder
    http://www.openstreetmap.org/way/38350706
    2 Routen werden gerendert rcn/lwn

    Verstehe ich das richtig, kommt diese mehrfach-Bezeichung also nur vor wenn Wanderroute und Radroute zusammentreffen aber nicht wenn 2 Wander oder 2 Radrouten zusammentreffen?

    Und wieso wird bei den im Post schon genannten ways
    http://www.openstreetmap.org/way/42227264
    http://www.openstreetmap.org/way/42325793

    gar keine Beschriftung angezeigt (also nicht einmal jene der 1.Relation, die vom Skript untersucht wird)

    Insgesamt sind die Routeinfos in einer Offlinekarte wie OAM auch mit dem derzeitgen Stand der ref-Beschriftung und der farbigen Hervorhebung der Linien ein Sahnestückerl mit dem es sich gerne Wandern/Biken lässt und ein entscheidender Pluspunkt gegenüber allen anderen Karten 🙂

    #8143
    Avatar-FotoChristianK
    Administrator

    Verstehe ich das richtig, kommt diese mehrfach-Bezeichung also nur vor wenn Wanderroute und Radroute zusammentreffen aber nicht wenn 2 Wander oder 2 Radrouten zusammentreffen?

    Ja, Exakt.
    Das wird so gemacht um kombinierte Rad/Wanderkarten zu ermöglichen.
    Hier müssen sich Wander/Rad-Refs sich das ref-tag teilen (ist ein Riesenaufwand aber unbedingt notwendig.

    Und wieso wird bei den im Post schon genannten ways
    http://www.openstreetmap.org/way/42227264
    http://www.openstreetmap.org/way/42325793

    gar keine Beschriftung angezeigt (also nicht einmal jene der 1.Relation, die vom Skript untersucht wird)

    Downloade Dir bitte die neueste Austria.zip und prüfe mal ob das immer noch so ist (die Karte ist schon vom Februar, die Website mache ich morgen neu)

    Bei 42227264 gab es bei den 3 Relationen die in Frage kamen war auch 284524 die zum Zeitpunkt der jannuar-Ausgabe der Karte kein ref und als Name „lwn“ hatte – als keine Grossbuchstaben die zum Zusammenstoppeln der ref harangezogen werden konnte. Dieser Wert steht jetzt als „BHRK“ nach dem Edit von „ERIOSW“ drin.

    Bei 42325793 ditto.

    Wenn es der Zufall will das mein Script auf bei beiden Wegen zuerst auf die Relation 28452 gestossen ist dann ist das erklärbar – wie gesagt, lade Dir bitte die neue Austria-Karte und gib mir bitte Bescheid.

    Und ich werde einen gangbaren Weg suchen leere refs durch definierte innerhalb des selben weges/networks zu ersetzten, schau mer mal…

    VG
    Christian

    VG
    Christian

    #8153
    wernerschka
    Teilnehmer

    Bei 42227264 gab es bei den 3 Relationen die in Frage kamen war auch 284524 die zum Zeitpunkt der jannuar-Ausgabe der Karte kein ref und als Name “lwn” hatte – als keine Grossbuchstaben die zum Zusammenstoppeln der ref harangezogen werden konnte. Dieser Wert steht jetzt als “BHRK” nach dem Edit von “ERIOSW” drin.

    Ich habe mir nun die neue Austria-Karte downgeloaded, nun wird tatsächlich BHRK angezeigt 🙂

    Die Ursache war also, dass im Routennamen keine Großbuchstaben vor kamen. Kann man die Routine die bei nicht vorhandem ref-Tag den Namen zerlegt. ev. noch ein bissl „verbessern“, also dass in solchen Ausnahmefällen auch Kleinbuchstaben heran gezogen werden? Ist immer noch besser als wenn gar nix angezeigt wird. Und man hat erst dadurch die Gelegenheit beim Kartenbetrachten aufmerksam zu werden, dass das Tagging der OSM-Route „verbesserunggswürdig“ sein könnte.

    #10624
    steffen
    Teilnehmer

    Hi Christian,

    ich muss den alten Thread nochmal rausholen. Du schreibst, dass Du aus Performancegründen nur 6 Zeichen der Routenrefs anzeigst. Wie ich gesehen habe, baust Du die Refs neu zusammen, indem Du u.a. „_“ entfernst. Die Trails von ‚waymarkedtrails.org‘ in Island folgen alle dem Schema „RW_ISL+Nummer“. Aus „RW_ISL10“ wird bei Dir „RWISL1“, d.h. nach dieser Nomenklatur gibt es nur noch 9 Routenrefs, weil das letzte Zeichen bei Routennummer >=10 abgeschnitten wird und der 6 Zeichen Regel zum Opfer fällt.
    Ich baue mir ab und an auch meine eigene Islandkarte zusammen. Wie Du habe ich mir ein Programm geschrieben, welches die Routenrefs der entsprechenden Relationen auf die Member Ways vererbt. Die Regeln dafür sind sicher ähnlich zu Deinen, allerdings schneide ich erst ab 16 Zeichen ab und kombiniere die diversen Refs, siehe Screenshot. Ein Performanceproblem sehe ich bei mir nicht. Der Kartenaufbau und das Zoomen geht nach wie vor flüssig auf meinem Handy. Vielleicht überdenkst Du das Abschneiden nach 6 Zeichen nochmal?! Im Falle von Island wären zumindest 7 Zeichen besser…

    Grüsse,
    Steffen

    #10627
    Avatar-FotoChristianK
    Administrator

    Hallo Steffen,

    Danke für den Hinweis. Nachdem die Karte von Island eine der ersten war die ich gerendert habe und noch immer gerne an meine Islandreise vor 30 Jahren zurückdenke werde ich das selbstverständlich mit dem Augustupdate ändern.

    VG
    Christian

    #10634
    steffen
    Teilnehmer

    Hi Christian,

    das ist ja ein Super Service.

    Viele Grüsse nach Österreich

    #10662
    steffen
    Teilnehmer

    Hallo Christian,

    habe mir gerade Deine aktuelle Islandkarte runtergeladen. Da passt nochwas mit der vererbten Routenref der Relation auf den entsprechenden Weg nicht, Bsp: http://www.openstreetmap.org/way/48321034. Der Weg selbst hat schon eine Referenz (214), weil er auch eine Straße ist. Er ist aber auch Bestandteil einer Routen Relation (http://www.openstreetmap.org/way/48321034), hat dort aber keine Referenz, sondern nur einen Namen. Ich weiß nicht, was Dein Script hier macht, angezeigt wird jedenfalls ein „K“ (erster Buchstabe des Namens der Relation?). Wäre es nicht günstiger, in solchen Fällen die Wegereferenz unverändert zu lassen und nur das network/hknetwork Attribut von der höchstwertigen Relation zu kopieren? Ich habe Dir mal 2 Screenshots des gleichen Bereiches angehangen. Der erste stammt von Deiner Karte, der andere von meiner. Vielleicht kannst Du das noch fixen?!

    Grüsse,
    Steffen

    ref=“K“
    screenshot_oam

    ref=“214″
    screenshot_meine

    #10680
    Avatar-FotoChristianK
    Administrator

    Hallo Stefen,

    Wenn keine Routen-Ref vorhanden ist dann versuche ich aus den uppercase Anfangsbuchstaben des Routen Namens eine Ref zu bilden (wie waymarkedtrails.org). Das funktioniert normalerweise ganz gut.
    … und hoffe das jemand der so eine verstümmelte ref in der Karte sieht sich erbarmt und der Route eiine ordentliche ref vergibt.

    Wo man hier eine Grenze einzieht bei der der ref des darunter liegenden gilt ist schwierig, vor allen weil ich die ref auch aus cycle/mtb + hike refs zusammensetzen muss. (was auch die sehr restriktive Längenbegrenzung der refs erklärt).

    VG
    Christian

    #10689
    steffen
    Teilnehmer

    Hi Christian,

    Deine Bedenken sind verstanden! Es wird sicher den ein oder anderen geben, der fehlende Refs hinzufügt. Es wird aber nicht dazu führen, dass diese Dinge grundlegend bereinigt werden. Das im „Vererbungs-Kopier-Script“ zu fixen, halte ich für konsequenter. Du müsstest wahrscheinlich nur wenig anpassen:

    Hat eine Routen Relation keine Ref, im Member Way schauen, ob bereits eine Ref vorhanden:
    -> wenn ja, keine neue Ref im Member Way erzeugen
    -> wenn nein, kannst Du Dein bisheriges Verfahren anwenden (erster Buchstabe des Names aus Relation).

    Wäre das eventuell eine Lösung?

    Was mir zumindest in Island aufgefallen ist (keine Ahnung ob das auf andere Länder auch zutrifft) ist, dass dort eine Menge von Wanderrouten zum Teil über Hochlandpisten (z.B. Laugavegur teils über F210, F261) verlaufen. Einige dieser Wanderrouten haben einfach keine Ref. In solchen Fällen den ersten Buchstaben aus dem Relations Namen zu verwenden und dafür den deutlich aussagekräftigeren Pistennamen zu opfern, halte ich für etwas unglücklich. Dann doch lieber den offiziellen Pistennamen (F210…) beibehalten. Der Wander-/Radroutenverlauf ist über das Theme ja eh schon anders farbig hervorgehoben. Und wer dort offroad mit seinem SUV unterwegs ist, sieht die Bezeichnung mit der er was anfangen kann, anstatt z.B. einem „K“.
    Mir ist schon klar Christian, dass dieses Thema ziemlich kompliziert ist. Dafür Regeln aufzustellen, mit denen alle zufrieden sind, ist nahezu unmöglich. Aber vielleicht findest Du mal eine ruhige Minute darüber nachzudenken. Ich bin gerne bereit da mitzumachen.

    Grüsse,
    Steffen

    #10697
    Avatar-FotoChristianK
    Administrator

    Hallo Steffen,

    Das ist eine Arbeit für den Winter – wobei, für die meisten fehlenden Refs ist die ZusammenStoppelMethode ganz OK.

    VG
    Christian

Betrachte 15 Beiträge - 1 bis 15 (von insgesamt 15)
  • Sie müssen angemeldet sein, um zu diesem Thema eine Antwort verfassen zu können.