OpenStreetMap

OSM go - Nodes und Daten (DE)

Posted by -karlos- on 9 January 2017 in German (Deutsch)

London

Es macht immer noch Spaß, "OSM go" zu verbessern und neue Funktionen zu ergänzen. Ein paar Zeilen Code dazu und Bäume werden sichtbar; und da sind wirklich viele Bäume in OSM. Die Hauptidee ist immer noch das Darstellen von OSM Daten. Eine echt realistische Darstellung mag möglich sein und kommen (viel) später (Als Teamwork mit OSMBuildings und OSM2WORLD, hoffe ich).

Wir haben ein Experiment gemacht: OSM2WORLD kann ein Gebiet als 3D Format “obj” exportieren. Und OSM go kann das anzeigen, auch Farben. Jan (OSMBuildings) exportierte einige Gebiete um zu Testen, ob sie als 3D-Tiles in einem Thin-Client genutzt werden können. Geht gut: Twitter-Post

Die Bedienung wurde völlig überarbeitet. Jetzt gibt es zwei Wege, sich zu bewegen und umzusehen, den 'Inspection-' und den 'Segway-Mode'. 'Inspection' ist default, Taste “C” wechselt den Mode. 'Inspection' geht so, wie man es von anderen 3D-Renderern wie OSMBuildings gewohnt ist: Mit den Tasten bewegt man seinen Blickpunkt, mit Maus oder Touch bewegt man die 3D-Welt.

Um alle Verbesserungen und Einzelheiten zu sehen kann man bei Twitter @OSM__go ansehen oder abonnieren. Um die neueste Version von "OSM go" zu testen gibt es die neue Web-URL OSMgo.org . Da sieht man fast täglich Änderungen. Es ist eine Bastelecke! Es mag gehen oder abstürzen. Es gibt auch ältere Versionen zum probieren bei OSMgo.org/versions. Und alle Informationen über “OSM go” sind auf der Wiki-Seite

Nodes & Daten

Die ersten Versionen von “OSM go” zeigten nur Wege und Flächen, keine lokalen Objekte. Aber jetzt ist die Oberpass-Abfrage erweitert um auch alle Nodes zu bekommen. Es begann mit einem Studenten der HSR Rapperswil. Er testete, wie schwer es ist, OSM2WORLD zu erweitern und 3D-Modelle von Tischen mit Stühlen zu ergänzen (amenity=="table”). Es lief gut, ich bekam den Code auch und änderte ihn zu Javascript. So wurde das erste OSM-Objekt in "OSM go" sichtbar. Das motivierte mich, eine kleine Lib zum erstellen um 3D-Typen zu schreiben, die von den Tag-Werten abhängig sind. Ich habe auch noch das beliebtere leisure=“picnic_table” eingebaut. Und dann auch "generator:source"=“wind”, der erste animierte Node-Typ. Aufregend einen Windpark zu sehen wo sich alles dreht.

Tische

Es gibt so viele verschiedene Node-Typen; viel zu viel Arbeit die alle in 3D zu bauen. Aber trotzdem sind jetzt (fast) alle Nodes sichtbar. Die meisten als rote Tetraeder. Es ist ein großer Schritt für das Ziel von “OSM go”, alle OSM Daten erreichbar zu machen. Ein Klick auf einen “roten Diamanten” listet alle Tags. Da sind jetzt eine menge Nodes zu sehen! Bei manschen ist Darstellen nicht sinnvoll:

  • Wenn es nur ein Level-Tag eines Wegs ist. Auch wenn es nur das tag “created_by” ist.
  • Es macht keinen Sinn "railway- oder highway-crossing” anzuzeigen, nicht war? Man sieht die sich kreuzenden Wege ja schon so. Was ist mit imaginären Objekten wie die Haltestellen von “public_transport”? Da wird ohnehin ein Busshalteschild sein. Mag sein, man will abstrakte “Geister-Objekte” sehen oder nicht. Dazu gibt es den neuen URL-Parameter “&abs=1”, Default ist aus.

Hie und da werden neue Nodes in 3D entworfen. Die Ersten sind da: “natural"==“tree” und “barrier"==“bollard”. Das war eher leicht. Eine Bushaltestelle wird schwieriger weile jedes Land seine eigenen Zeichen haben wird. Klar, die könnte man in einer “Datenbank”. Viel Arbeit. Erst werde ich die gleichen Symbole wie der 2D-Renderer nutzen.

Neulich konnte ich eine “power:substation” nicht finden, die ich schon mal gesehen hatte. Deshalb wurde ein URL-Parameter “&f=“ zum filtern/finden ergänzt. Tag-Namen und Werte und OSM-IDs werden geprüft. Die gefundenen Objekte können mit Nadeln markiert werden oder hervorgehoben durch Verblassen aller anderen Objekte. Schon beeindruckend (versuche “f=!surveillance”!). Und es ist wieder ein Schritt zur OSM-Datenhandhabung. Details stehen im Wiki.

Filter

Darstellen der dritten Dimension

Inspiriert von einer Zeichnung der Londoner U-Bahn wollte ich auch ein “in earth mapping”. Jetzt werden U-Bahn-Tunnel als “Röhren” dargestellt. Ich brauchte einige Tage des Versuchens, bis Stufen wirklich richtig im Raum auf und ab gingen. Es steht im Wiki: Stufen brauchen keine Level-Tags. Die sind durch die verbundenen Nodes oder Wege ohnehin festgelegt. Ein großes Problem ist die Bedeutung der Tags level und layer. Das könnte eine größere Diskussion unter uns werden. Um auch unter die Erde zu sehen, ohne per Tastatur “abzutauchen”, an man den experimentellen URL-Parameter “&sub=1” nutzen.

Untergrund

Was ist, wenn für ein Gebäude keine Höhe definiert ist? Es gab einen Defaultwert von 6m. Aber jetzt wird das errechnet; je länger der Grundriss je höher. Das ist immer noch geschummelt, sieht aber viel besser aus als ein einheitlicher Wert. Andererseits: Wie kann man sehen, ob einem Gebäude Höhe und Stockwerke fehlen. Jetzt gibt es noch einen URL-Wert “&hei=“ mit dem man den Wert selbst setzen kann. Probiert man “&hei=0.5”, sieht man den Unterschied deutlich (Sieht aus wie bei "Pokemon GO” :-)

Der Kampf mit der Render-Zeit

Jede Verbesserung pflegt die benötigte Tender-Zeit zu verschlechtern! Mein Wissen zum Optimieren ist begrenzt, will jemand helfen? Glücklicherweise braucht man zum Darstellen von OSM-Daten die Gebäude nicht bis zum Horizont. Weniger Einzelheiten (LOD) bei entfernteren Tiles wird fällig, bei Gelegenheit. Zusätzliche Zeit braucht das Nachladen von Tiles im Hintergrund. Das wurde schon mehrfach überarbeitet und wird es auch weiter.

Wie auch immer, die Bedienung von "OSM go" wird fies, wenn man zu viele Objekte und größere Flächen angezeigt werden.

  • Mit Shift-L wird neu geladen, aber nur die nähere Umgebung.
  • Mit der Taste H werden das dt zwischen Frames und die Frames pro Sekunde (fps) aktuell und geglättet, sichtbar.
  • Die Darstellung von Schatten abschalten kann helfen: “&sha=0”.
  • Um die FPS über 5 zu halten wird die FAR-Plane reduziert, entfernte Gebäude und Straßen verschwinden. Die Grenze von 5 kann man ändern oder auf 0/aus setzen mit dem URL-Parameter “&fps="

Was kommt?

Erste Schritte zu einem echten Tile-Handling; löschen von Tiles ist notwendig. Die fps müssen stabil sein, damit die Tastaturbedienung geht. Vielleicht wird ein “3d Person View” besser verdeutlichen, wie ein Anwender sich in der 3D-Welt bewegen kann. Der Cardboard-Mode ist in Arbeit: Kopfbewegungen sollen Richtung und Geschwindigkeit steuern. Die Datenanzeige muss bei Smartphones größer sein.

Ich bin mir nicht sicher wie ein Anwender sich fühlt. Sollte was geändert werden, verbessert, ergänzt? Ich bin für jeden Kommentar dankbar. Bitte testet, schickt mir Bildschirmfotos von euren Lieblingsplätzen. Sagt mir was euch stört oder gefällt.

Leave a comment

Parsed with Markdown

  • Headings

    # Heading
    ## Subheading

  • Unordered list

    * First item
    * Second item

  • Ordered list

    1. First item
    2. Second item

  • Link

    [Text](URL)
  • Image

    ![Alt text](URL)

Login to leave a comment