OSM Composer V0.81 mit neuem Wizard

Hallo!

Es gibt eine neue Version V0.81 von OSM Composer. Diesmal beinhaltet Composer ein grundlegend neues Feature, zu dem ich ein paar Worte verlieren möchte.

Bei der Kartenerstellung in OSM gibt es immer wieder ein paar knifflige Fragen zu beantworten:

  • Welche Tags werden verwendet, welche Objekte gibt es im Kartenbereich?
  • Funktionieren meine Renderregeln, werden die gewünschten Objekte erfaßt?
  • Fehlen noch Objekte auf meiner Karte, werden überhaupt alle Renderregeln benutzt?

Für die Verwendung von Tags gibt es Statistiken wie Tagwatch und OSMDoc. Für die Übersicht über Renderregeln gibt es den Wiki-Ansatz bei Kosmos/Groundtruth oder den graphischen Ansatz mit den Previews in Composer. Aber irgendwie ist es immer noch alles rech mühsam und mit sehr viel Handarbeit verbunden, viel basiert auf Try&Error. Seit einiger Zeit ging mir ein neuer, gemischter Ansatz durch den Kopf, den ich jetzt mal in Composer eingebaut habe. In Ermangelung eines besseren Namens habe ich das Modul Wizard genannt.

Im Prinzip fährt Composer eine Statistik über den verarbeiteten Kartenausschnitt und zeigt die Verwendung und Häufigkeit der einzelnen Tags in einem Baum an. (Toll, das macht OSMDoc auch :-). Dann werden in diesen Baum alle Renderregeln eingetragen und mit einem kleinen Previewicon graphisch verdeutlicht. Es wird zwischen direkten Regeln unterschieden, die immer dieses Ergebnis bringen, und Tags, die in komplexen Bedingungen verwendet werden und kontextabhängig so gerendert werden können. Schließlich werden noch alle internen Verwendung von Composer eingetragen, z.B. für ein Wegeverzeichnis. Grundsätzlich soll diese Sicht helfen, die Regeln leichter zu verstehen.
Der Baum ist nicht statisch, sonden alle Regeln können direkt im Baum angezeigt und bearbeitet werden. Darüber hinaus können neue Regeln einfach erzeugt werden, indem man ein Kartenobjekt nimmt und per Drag&Drop auf ein bisher unbenutztes Tag zieht. Alle Änderungen werden im Wizard sofort angezeigt.

Meine erste Erfahrung war ganz positiv - sonst hätte ich’s schnell und heimlich wieder ausgebaut. :slight_smile: Ich habe ein paar Dinge in meiner Karte gefunden, die mir so vorher noch nicht klar waren und konnte sie ergänzen oder korrigieren. Jetzt würde ich aber Euch einladen, euch das Konzept mal anzusehen, ob Ihr damit etwas anfangen könnt und vielleicht noch weitere Ideen habt, was man damit anstellen könnte. Denkt bitte immer daran, die Idee ist noch ganz jung und sicher ausbaufähig. Auch wenn Ihr mit Garminkarten und Composer nichts am Hut habt, könnte es interessant sein mal draufzuschauen, vielleicht kann man mit dem Ansatz ja auch bei anderen Toolkombinationen für mehr Durchblick sorgen.

So, jetzt aber zur gewohnten Zusammenfassung. Die wesentlichen Features der neuen Version sind:

  • Erste Unterstützung für routingfähige Karten
  • Wizardmodus, der Renderregeln und Statistiken über vorhandene Tags grafisch zusammenbringt
  • Automatisches Erzeugen von Icons auf Flächen
  • Unterstützung einer Whitelist für Tags
  • Kartenparameter sind Pflichtfelder
  • Fix: Kartenid wieder mehrstellig
  • Fix: Zweifarbige Bitmaps bei Linien möglich. Danke an Walter Schlögl für die Lösung.

Download unter http://wiki.openstreetmap.org/wiki/DE:OSM_Composer#Download

bye
Nop

Hallo Nop,

hab gleich mal die neue Version getestet… und gleich ein Fehler. Großer Schock! Doch mit etwas denken konnte ich es lösen…Kann ja keiner ahnen dass du admin_level ignorierst :wink:

Da kommt mir gleich noch zwei Fragen zum Filter: a) Was macht zusammenfassen? b) beziehen sich die Tags nur auf Ways und Nodes, oder auch auf Relationen?

Ansonsten finde ich den Wizzard richtig gut gelungen, auch wenn meine Karte ja erstmal fertig ist…aber man weiß ja nie :wink:

Ein Problem besteht bei mir aber weiterhin. Ich kann die Routen nicht markieren oder es wird nicht mit gespeichert oder einfach nur nicht angezeigt.

Btw: Ein deaktivieren von mkgmap ist noch nicht dabei, oder hab ichs übersehen?

Zusammenfassen macht nur einen Eintrag in der Statistik für Tags mit extrem vielen individuellen Werten, z.B. Hausnummern.
Die Tags beziehen sich nur auf Ways und Nodes.

Welche Karte ist jemals fertig? :slight_smile:

Grundsäztlich funktioniert das Routen markieren - er weigert sich allerdings wenn die Route noch als fehlerhaft eingestuft ist. Beschreib den Fall doch mal etwas genauer.

mkgmap abschalten kommt später.

bye
Nop

Hallo Nop,

mkgmap-Abschalten könntest du dir im Prinzip auch sparen, wenn der Composer nach einem mkgmap-call fail normal weiter machen würde. Sprich ich sag dem Composer nicht, wo er mkgmap findet. Wenn der Composer dann mkgmap aufrufen möchte, gibt er die bisherige Fehlermeldung aus, macht aber anschließend weiter mit TYP-File und mit dem Aufruf der Batch-Datei. Das würde mir schon ausreichen.
Derzeit ist es so, dass das kein Typ-File und auch die Integration in Mapsource nicht funktioniert, wenn ich mkgmap dem Composer vorenthalte.

Das mit den Routen schau ich mir nochmal genauer an und berichte dann mal darüber.

EDIT:

Tatsache…nach etwas scrollen hab ich ein paar Routen gefunden, die ich markieren kann. Welche Kriterien setzt du für korrekte Routen an?

Der Elbe-Radweg ist mMn korrekt eingetragen…so wie egtl. fast alle anderen Radwege auch. Allerdings werden mehr als 90% grau hinterlegt, also als fehlerhaft angezeigt. Hier mal der wiki-Eintrag.

So…nun bin ich auch auf den ersten richtigen Fehler gestoßen…
Wenn man eine OSM-Datei ohne Relationen verarbeitet gibt’s eine BufferUnderflowException

25.01.10 15:40 java.nio.BufferUnderflowException
25.01.10 15:40 Exception reading relations
java.nio.BufferUnderflowException
    at java.nio.Buffer.nextGetIndex(Unknown Source)
    at java.nio.DirectByteBuffer.get(Unknown Source)
    at nop.osm.OSMInputChannel.read(OSMInputChannel.java:126)
    at nop.osm.OSMInputChannel.readTag(OSMInputChannel.java:151)
    at nop.osm.OSMInputChannel.findRelations(OSMInputChannel.java:80)
    at nop.osm.OSMInputChannel.extractRelationsTo(OSMInputChannel.java:40)
    at nop.osmc.generator.RouteMapper.readRelations(RouteMapper.java:74)
    at nop.osmc.generator.Mapper.cutSourceFile(Mapper.java:475)
    at nop.osmc.generator.Mapper.generate(Mapper.java:149)
    at nop.osmc.MapComposer$12.act(MapComposer.java:361)
    at nop.gui.MenuThreadAction.run(MenuThreadAction.java:27)
    at java.lang.Thread.run(Unknown Source)

Nee, das würde ja für alle Benutzer kritischer Fehler in Konfiguration und Aufruf verschleiern und evtl. Folgefehler provozieren. Schüttel :slight_smile:

Schau mal die Routen an, es gibt da eine DropDownBox “Bemerkung” mit der Ursache. Du kannst Die aber einfach von Hand entfernen, dann klappt auch das Aktivieren.

bye
Nop

Ok…dann solltest du noch konsequenterweise den bat-Aufruf auch unterbinden.

Ahhh…ok jetzt gehts…jetzt muss ich mir nurnoch mal ein Programm schreiben, dass mir alle benötigten Radwege ändert…
Danke für den Hinweis.

Was genau meinst Du damit? Die Bewertung von Composer gilt für Wanderrouten, für Radwege muß sie nicht passen.

Naja…ich will ja nur alle Relationen, die ein rcn, lcn, ncn und icn als network haben farbig hinterlegt haben. Da muss ich im Composer zuviel für klicken, um das zu realisieren. Da schreib ich mir lieber ein Programm, das die route.tbl manipuliert.

Hallo Nop

Das wäre meine Frage gewesen, ob es diesen Wizard (ggfs. ohne die Renderregeln)
auch irgendwann als eigenständiges Tool geben könnte. (Für Leute wie mich, die keine
Karte erzeugen wollen, aber gerne eine Übersichtüber ihre Edit-Gebiete hätten.)

Die andere Frage ist, ob der Composer auch auf einem Mac läuft.

Edbert (EvanE)

Hallo Nop,
ich hab noch eine “schlechte” Nachricht. Wenn ich in dem Einstellungsdialog der Regionen die Koordinate 0 angebe, nimmt er sie nicht an. Auch -0 geht nicht.

Composer ist Java und läuft auch auf Macs - nur zwei der Tools für die Kartenerzeugung sind Windows-spezifisch.

Wenn man die Renderregeln nicht braucht, dann hat man ja nichts mehr von dem Wizard. Dann würde ich eher darüber nachdenken, das Gebiet von Interesse mit osmosis auszuschneiden und eine OSMDoc-Statistik darüber zu fahren.

bye

        Nop

Hallo Nop

Welche zwei Tools laufen nur auf Windows?

Ich denke ich sollte dem Composer mal ausprobieren.

Funktionieren die erzeugten Karten auch in BaseCamp?

Edbert (EvanE)

Hallo EvanE,

die Tools, die nicht in java gecshrieben sind wären: srtm2osm, cgpsmapper und sendmaps. Letzteres kann man aber verschmerzen, da man die gmapsupp.img auch mit mkgmap erstellen lassen kann. Ob es für die anderen beiden Tools eine Mac-Version gibt weiß ich nicht. Ebenso ob die Karten unter Mac fuktionieren. Direkt auf dem Mac werden sie nicht laufen, aber im naviboard hab ich mal was gelesen, wo es darum ging, die irgendwie in dieses neue Garmin-Format umzuwandeln, sodass sie unter Mac laufen. Ich finde den dortigen Faden aber leider nicht mehr…

Unter Windows laufen die Karten mit BaseCamp…aber das durchsucht auch die Registry-Einträge von MapSource.

Hallo aighes

Hmmh

  • srtm2osm := Höhenlinien
  • cgpsmapper := Karte erstellen
  • sendmap := mehrere Kearten zusammenfassen

Im Augenblick will ich nur bedingt eine Karte erstellen,
da mich die Analyse-Möglichkeiten mehr interessieren.

Auf der anderen Seite könnte ich mir eine so erstellte Karte
mit Mapsource auf Windows ansehen. Wäre sicher interessant.

Es scheint mir viel Zeug zum Einarbeiten zu sein.

Edbert (EvanE)

Nein… cgpsmapper macht “nur” das Typ-File, das Rendern der Karte übernimmt mkgmap. SendMap übernimmt im Composer das zusammenfassen der KArte und ermöglicht ein übertragen an das Garmin-Gerät. Ich meine mich zu erinnern (steht glaub ich auf der Composer-Diskussionsseite im wiki) das cgpsmapper irgendwie unter Linux läuft…evtl. bekommt man es dann auch unter Mac zum laufen.

srtm2osm macht auch irgendwas bei der Kachelgrößenbestimmung. Ich weiß nur nicht genau was…könnte also sein, dass der Composer ohne dies nicht kann. Dazu kann dir aber Nop sicher mehr sagen.

EDIT: srtm2osm benötigt das .NET Framework. Da kannst du probieren, ob es auch mit Mono läuft, dann wäre das Problem schonmal gelöst…

Hallo aighes

Erst mal Danke für die Informationen.
Das macht mir Mut, den Composer mal auszuprobieren.

Schlimmstenfalls habe ich auch Zugriff auf Windows.

Edbert (EvanE)

Es gibt eine cgpsmapper-Version für Linux. Die ist kostenlos für nichtkommerzielle Anwendung:
http://www.cgpsmapper.com/download/cgpsmapper-static.gz

Auch sendmap gibts in einer Linux-Ausführung:
http://www.cgpsmapper.com/download/sendmap20.gz

srtm2osm ist eine .net-Anwendung die mit mono unter Linux auch zur Mitarbeit überredet werden kann.

Dennoch hakelt es, wenn man osmcomposer unter Linux einsetzen will.

Volker

Hi!

Vielen Dank an aighes für die ganzen Antworten, da hab ich ja gar nix mehr hinzuzufügen. :slight_smile:

Für eine Analyse brauchst Du nur Osmosis und Composer, das ist reines Java und sollte überall laufen.

Aber wie gesagt, richtig interessant wird’s erst wenn Du Auswertungs/Renderregeln entwickelst und Dir das Zusammenspiel mit den Daten anschaust.

Unter Windows ist es tatsächlich so selbstkonfigurierend, daß man nach dem Auspacken von Composer und Starthilfeset mit einem Mausklick seine erste eigene Demokarte erhält.

Unter Linux wurde daran einfach noch nicht gearbeitet.

Man kann zwar inzwischen noch viel mehr einstellen, muß man aber am Anfang nicht.

bye
Nop

Hallo Nop,
na ja ich bin recht neu in der ganzen OSM Materie, aber seit dem ich Mappe und die Karten auch eine recht große Anzahl von Wegen hat, denke ich über ein neues Garmin nach.
Also ich wohne im Grenzgebiet und deshalb nutze ich nur Karten im MapSource die ich mit Deinem Programm erstelle weil ich so alle drei Länder komplett habe.
Dazu hab ich eine Region angelegt, 14-15.3/50.6-51.3 mit Download vom API Server, dann lasse ich es einmal durchlaufen damit ich die Routen bekomme. Nun die Routen markiert damit ich die Symbole erhalte. Soweit so richtig nehme ich an, aber nun zum eigentlichen.
Das geht aber nur mit Ver. 080rc1 ab der Ver. 080 oder 081 werden die Routen nicht mehr gerendert. Also auf der Karte erscheinen die Symbole nicht mehr.
Wenn ich aber eine andere Region anlege zB. Sachsen 11.8-15.1/50.1-51.7 und dort eine Lokale OSM Datei angebe und ich mir von der Geofabrik die Daten hole dann werden die Routen gerendert, also wie kann es sein das die Routen aus lokaler OSM gerendert werden aber beim laden vom API nicht.
<< Hab noch was dazu raus gefunden es wird keine _routes.osm erzeugt wie bei den anderen. >>
Ach ja die Regionsübersicht bleibt in 081 auch leer es werden keine Regionen mehr farbig dargestellt.
<< Sorry das mit der Übersicht hab ich gefunden, man muss jetzt Hacken setzen >>
Gruß AlterSachse