OSM Composer V0.81 mit neuem Wizard

Hallo,
hier der versprochene Link zum Naviboard-Thread: http://www.naviboard.de/vb/showthread.php?t=39858

Hallo Nop,

schade, meine Idee war wohl nichts.
Könntest du dir vorstellen, gemeinsam mit den mkgmap Programmierern die bestehenden Algorithmen von deinem Splitter und dem von mkgmap zu vereinen.
Das wäre natürlich ein größeres Projekt an dem mehrere arbeiten müssten, aber es würde sicherlich viele Vorteile bringen, nicht getrennte Programme pflegen zu müssen.

Hier mal die ersten Erfahrungen mit der neuen --route Option.
Ich habe alle relevanten TAGs als Durchreich-Tags definiert und sie scheinen auch alle im _garmin.osm auf.
Die erstelle Karte ist zwar routingfähig, aber die TAGs scheinen ignoriert zu werden (z.B. Routing gegen Einbahnen)

Wenn ich die gleiche Karte mit händischem Aufruf von mkgmap erzeuge, erfolgt das Routing korrekt.
Der einzige Unterschied ist der, dass ich mit --gmapsupp xxx.TYP gleich das Garmin-File direkt erzeuge.
Kann es sein, dass von sendmap20 die Routingfeature teilweise zerstört werden?
Weiters ist mir aufgefallen, dass sendmap20 eine Karte erzeugt, die um ca. 30% größer ist (ohne optische Unterschiede).

Für mich ist das Ergebnis trotzdem brauchbar, da ich wegen dem durch sendmap20 zerstörten Kartennamen ohnehin einen Extralauf von mkgmap durchführe.
Optimal wäre es natürlich, wenn die Karte gleich im ersten Schritt richtig ist.
Hat irgendjemand ähnliche Ergebnisse mit der route Funktion erhalten?

Walter

Hallo,
mit dem durchreichen von Tags hab ich mich noch nicht beschäftigt. Was ich dabei noch nicht ganz verstanden hab: Ich kann Tags Blocken und Tags erlauben (zumindest gibt es beides in den bisherigen Regeln. Wäre es nicht sinnvoll alles zu ignorieren, was nicht in den Regeln steht und nicht in der whitelist? Das würde den Prozess logischer und somit verständlicher machen.

ich lass mir von sendmap keine gmapsupp erstellen. Die routingfähige Karte ist bei mir ca. 30% größer als die nicht routingfähige. Ich hab allerdings noch keine access und oneway-Tags durchgereicht. Ansonsten ist das Routing auf der Kurzstrecke schon super.

Alles was ich bräuchte wäre jemand, der in verständlichen Worten erzählt, was für das Routing von mkgmap zu beachten ist. Leider ist das nach meiner Erfahrung nicht ganz so einfach. Wenn auf der Liste eine Frage zu einem Problem auftaucht, wird sie häufig gar nicht beantwortet. Oder die Antwort lautet: Schau in den Code.

Mit den gleichen Parametern? Das ist versteh ich jetzt nicht.

bye
Nop

Damit wären aber eine statistische Auswertung, welche Tags vorkommen und ein Wizard nicht mehr möglich. Alles Unbekannte wird ja ignoriert.

bye
Nop

Der Unterschied besteht ja darin, dass einmal SendMap die gmapsupp erstellt und einmal mkgmap…

Ich weiß nun nicht, wie bei dir die Auswertung aussieht, aber ich stellte mir das so vor…alle Tags werden eingelesen aus der vorhandenen osm-Datei. Dann wird alles anaysiert. Beim gucken, ob der Tag auf dem Index steht, wird er in die Statistik geschrieben. Steht er auf dem Index geht er in die Ausgabe-OSM-Datei.

Ich glaub ich werd’ die gmapsupp-Erstellung jetzt wirklich mal umbiegen auf mkgmap.

So isses nicht. Alles was auf der Blacklist steht, wird schon direkt beim Enlesen weggeworfen und gar nicht erst ein Objekt dafür im Speicher angelegt. Wenn ich erst mal alles einlesen und alaysieren würde, hätte ich keinen Speicher/Geschwindigkeitsgewinn davon, dann bräuchte ich gar keine Blacklist. Alles was nach allen Auswertungen von keiner Regel berührt wurde, wird dann sowieso weggeworfen, aber mit Blacklist geht die Verarbeitung schneller und die Statistiken für den Rest sind besser lesbar.

bye
Nop

Hallo Nop,

für den angekündigten --gmapsupp Schalten im Composer im Voraus schon mal ein ganz herzliches Dankeschön.
Meine Routing-Versuche werden dadurch um einiges einfacher.
Falls notwendig, kannst du den Schalten ja gegen den sendmap Schalter “auf Gerät laden” verriegeln.

Zu deiner Frage, ob es sich bei mir wirklich um die gleichen Parameter handelt.
Bis auf --gmapsupp: Ja (falls ich keinen Fehler gemacht habe, ich hab’s aber nochmals kontrolliert)
Der Composer stürzt mir übrigens ab und zu ohne Fehlermeldung ab (nicht beim Erstellen sondern während der Bedienung), das habe ich bei den vorigen Versionen nie beobachtet.
Beim Setzen mancher Durchreich-TAGs erhalte ich beim Lauf Fehlermeldungen (z.B. Wenn ich Tag barrier durchreichen will)
Ist das beabsichtigt oder ein Fehler?

Wenn wir beim Splitter weiterkommen wollen, ist wohl eine Codeanalyse angesagt. Um wie viele Codezeilen geht es denn dabei?
Wenn du mir die betreffenden Zeilen schickst (du hast ja vermutlich auch den mkgmap Code schon mal durchgelesen) könnte ich schon etwas Zeit investieren.
Meine Programmierkenntnisse sind allerdings nur ein Bruchteil im Vergleich zu deinen, aber vielleicht wäre es einen Versuch wert.

Walter

Also bei mir ist er keine einziges mal abgeraucht. Und wenn Du mir verräts, was für eine Fehlermeldung, dann sage ich Dir was sie bedeutet. :slight_smile:

Jede Menge Code - ich hab da normal nur nach bestimmten Suchbegriffen gesucht, um die Ursache für kryptische Fehlermeldungen zu ermitteln. Und ich habe keine Lust mich tagelang einzuarbeiten um eine Info herauszufinden, die man auch in 15 minuten erklären könnte.

Aber vielleicht magst Du ja mal auf die Leute zugehen und fragen. Vielleicht hast Du mehr Glück.

bye
Nop

Hallo Nop,

du prüfst doch ohnehin, ob der Tag auf der Blacklist steht, dafür kommen die Daten in den Speicher. Dann könntest du doch da dann einfach den Zähler für diesen Tag hochsetzen. Die Statistik also direkt beim einlesen der Datei erstellen. Aber ist ja alles nur eine Frage der Gewohnheit :wink:

Hi!

Die Idee ist es, die unerwünschten Tags möglichst schnell loszuwerden. Es wird zwar der Text eingelesen, aber erst gar kein Tag-Objekt angelegt. Wenn ich da noch anfangen würde, Statistiken über das zu fahren, was ich wegwerfen will, wäre die Blacklist komplett überflüssig.

bye
Nop

Unter Linux scheint es momentan ein Problem mit cgpsmapper zu geben … dessen Aufruf geht (leider kommentarlos) schief. Kann jemand hier weiterhelfen? OSM Composer 0.81 entsprechend der Anweisungen auf der Diskussionsseite zum OMS Composer installiert.

Wie sieht es egtl. mit Relationen aus? Welche werden da durchgeschleift bzw. kann man die auch per white-List durchschleifen?
Fürs Routing wären bspw. die restrictions überaus interessant.

Könnte man das ganze mit den Listen so zusammenfassen, dass die Blacklist der 1. Filter ist und die Whitelist mit den Regeln der 2. feinere Filter ist. Dann wäre natürlich eine Option alle Tags durchlassen in der 2. Stufe sinnvoll.

Das mit den Routen ist bereits vorgesehen, allerdings nicht mehr in der 0.82 weil’s ein größerer Eingriff ist - momentan will ich mal wieder eine Version zum Freigeben zusammenbekommen.

Ein pauschales Durchschleifen von allem (an Nodes und Tags) was nicht auf der Blacklist steht ist machbar. Wäre für meine Online-Karte tödlich, weil Mapnik dann Unfug rendert, aber für Garminkarten geht es.

bye
Nop

An die Relationen hab ich ja noch gar nicht gedacht.
Natürlich sind die für’s Routing notwendig (wegen den Abbiegeverboten).

Wenn der Composer ein Feature für Relationen bekommt, wäre es ja auch möglich, Buslinien sichtbar zu machen.
Ich freue mich schon auf die nächsten Versionen, das Thema bleibt sicherlich spannend.

Hoffenlich finden wir auch bald eine Lösung für den Splitter.
Ich fände es schade, hier auf den (derzeit noch deutlich beschränkten) mkgmap Splitter ausweichen zu müssen,
da ja dann das Datenbank Feature für größere Karten auch wegfallen würde.

Walter

Der mkgmap Splitter braucht das DB-Feature nicht, da er genau andersrum arbeitet. Er teilt die daten erst mal grob in Blöcke auf, läßt dabei einen Rand überstehen und verarbeitet dann jeden Block für sich. Das Verfahren hat ein paar Nachteile, ist aber deutlich schneller und eigentlich immer im Hauptspeicher durchführbar.

bye
Nop

Hallo Nop,
könntest du bei den Ersetzungen noch eine Aktion hinzufügen, die den key austauscht, den value aber beibehält?

Klar geht das.

bye
Nop

Hallo Henning,

verrätst du eine Anwendung für so eine Aktion.

Es gibt derzeit “Tag setzen”, damit wird der key beibehalten und nur value ausgetauscht und “Tag austauschen”, damit wird key und value getauscht.
Das neue Feature würde dann entgegengesetzt zum “Tag setzen” funktionieren.

Hallo Nop,

ich finde das Feature der Ersetzungen als das mächtigste und einen großen Vorteil gegenüber der reinen Script basierten Erstellung mit mkgmap.
Ist auch bei dir die Liste aller Ersetzungen bereits mehrere Seiten lang?
Ich habe mir überlegt, wie ich mehr Ordung hineinbringen kann. Der neue Wizard war dabei eine riesige Erleichterung.

Ich habe alle meine Ersetzungen gruppiert in: Overlays erzeugen, Namen ersetzen und erweitern, Tag austauschen, …
Für’s erste würde es mir sehr helfen, wenn beim Kopieren einer Ersetzung die neue direkt unter der bestehenden angelegt wird, und nicht ganz am Ende.
Hälst du es für machbar und sinnvoll, eine Gruppierung der Ersetzungen direkt gleich im Tool zu unterstützen (ich habe aber leider noch keine Ahnung wie).

Die folgenden Ersetzungen wären für meine Karten eine große Hilfe.

Key in Namen übernehmen: z.B bei Tankstellen für cng=yes, da möchte ich dann (cng) im Namen haben.
oder noch besser, gleich
Text in Namen übernehmen: Damit kann ich einen beliebigen Text (z.B. die deutsche Übersetzung des Tags) übernehmen.
Als Workaround verwende ich einen Zwischenschritt und erzeuge mir ein Dummy-Tag, benötige aber natürlich 2 Ersetzungen.

Keine Lösung habe ich derzeit, falls ich im Namen den Ersatz Wert vor statt nach dem Tag benötigen würde. Das ist aber nur eine optische Sache.
Anwendungsfall: Phone=nnn, Fax=nnn

Adresse in Namen übernehmen: übernimmt die Keys addr:street addr:housenumber, addr:postcode, addr:city (oder vorrangig addr:full, falls dieser Tag existiert)

Overlay auf Icon/Fläche setzen: Ich könnte damit bei Geschäften statt dem allgemeinen Symbol das Firmenlogo einblenden.
Derzeit verwende ich als Workaround “Icon einblenden”, damit sitzt das Logo aber immer am Rand und es funktioniert auch nur bei Flächen.

Weiters wäre es in manchen Fällen von Vorteil, die Reihenfolge der Aktionen bestimmen zu können.
Vor allem, wenn ich den alten Tag in den Namen übernehme und durch einen neuen Tag ersetze.

Ich hoffe, du kannst einige dieser Punkte in deiner Roadmap unterbringen.
Je mehr Leute den Composer einsetzen, desto mehr Wünsche entstehen,
aber es ist halt einfach die komfortabelste Art, einen eigenen Plan zu erstellen.

Wie funktioniert eigentlich der Download der Daten.
Werden immer alle OSM-Daten komplett neu heruntergeladen, oder nur die Änderungen zum letzten Download?
Da bei mir der Download häufig abbrach, mache ich derzeit den Download außerhalb des Composers mit einem Download Manager.

Walter

Hallo Walter,
bspw. möchte ich die access-Tags für Radfahrer auf die allgemeinen access-Tags umzubiegen.
Hintergrund ist der, dass das Routing am besten im Auto-Modus (für mich) funktioniert. Dort werden aber keine access-Tags für Radfahrer genutzt. Ich möchte also bicycle=no usw. auf access=no usw. umtaggen. Da wäre so eine Funktion deutlich angenehmer, als für jeden value eine neue Ersetzung zu machen.