OpenStreetMap

-karlos-'s Diary

Recent diary entries

Das Thema ist mir zu komplex, um es (gleich) in englisch zu schreiben. Ich bin auch kein Experte, kenne nicht mal die Probleme und Notwendigkeiten so genau. Das hier ist also eher ein Brainstorming mit einigen Schlagworten:

  • Anything will be an area
  • There has always be Vector Tiles
  • Don’t tag vor the Vector Tiles
  • Make the problem to the solution

Area als neuen Objekt-Typ ist nur Tagging-Sugar, die Verpackung wird einsichtiger, der Inhalt bleibt. Ein Kreisverkehr braucht kein area=no mehr, der Spielplatz keine identischen End-Nodes. Trotzdem bin ich dafür. Einige Editoren haben Areas ja auch schon im Interface. Ich sehe in Zukunft immer mehr Areas, auch für Wege. Am Ende ist jeder Fleck Erde Teil irgend eines Areas. Das ist gut für zoomed Rendern, für Rollstuhl-Karten und 3D Rendern. Es ist nur schlecht für rooting; vielleicht sollte im Way-Object eine Hilfe sein, eine Liste zu den anschließenden Wegen.

Vektor Tiles sind im Kern geordnete Informationen für ein Gebiet. Die brauchte man auch schon bei den ersten Bitmap-Renderern. Aus der Tagging-Anarchie wurden, und werden, Objekte in Layer gefiltert. Und dabei wird entschieden, was überhaupt sichtbar wird! Erst im nächsten Schritt werden die Objekte zu sichtbaren Linien, Flächen oder 3D Objekten. Daher dürfen Vektor Tiles nicht das aussehen festlegen und auch nicht bestimmen, was auf die Karte kommt. Allerdings gibt es “normale” Objekte, die jeder braucht und Seltene für Spezial-Karten. Mein Ansatz wäre: Immer zwei Tile-Dateien bereit zu stellen, eine die kompakt alles “normalerweise” notwendige enthält und eine mit wirklich dem ganzen Rest; schräge Sachen notfalls in einen Layer “sonstiges”. Den muß der Rendere dann nach dem Tagging der Objekte selbst sortieren.

“Don’t tag for the renderer!” sollte jeder kennen. Wird das in Zukunft auch für die Erstellung der Vektor Tiles gelten? Denn dabei wird schon viel geprüft und entschieden. Ein Editor könnte diesen Schritt transparent machen und das Objekt darstellen, wie und wo es in Tiles erscheinen würde. Dann ist es nicht mehr weit, bis man “direkt” in der Tile Editiert. Am Ende könnte das bisherige Tagging-Durcheinander komplett entfallen.

Aus dem offenen Tagging eine Zuordnung zu den Render-Layern zu schaffen ist auch heute schon notwendig. Allerdings kann hier jeder Renderer machen was er will. Wenn das schon für die Vektor-Tile gemacht wird, wird es vereinheitlicht/zentralisiert. Die meisten, aber nicht alle wird das freuen, erst recht, wenn das dann schon im Editor erzwungen wird. Nein, freie Tags müssen bleiben. Auch wenn die Vector-Tile die nicht “brauchen” kann, müssen sie mitgenommen werden. Der Renderer hat dann das Problem aber auch die Freiheit.

Zurück zum Data Model

Die Way-Nodes als Liste in das Way-Objekt scheint mir ok zu sein. Wenn der Weg jetzt einen Zebrastreifen hat, ist das ein eigenständiges Node-Object. Oder nenne wir es vielleicht gleich POI-Object! Nur hat dieses dann keine eigene Geo-Position sondern eine Referenz auf den Way und in die Liste dort.

Die Object IDs machen Probleme? Können wir sie vielleicht ganz los werden? Ich kann mir nicht vorstellen, das jeder Renderer immer alle World-Objekte scannt um die aus dem benötigten Gebiet zu finden; da gibt es schon Indizierungen, 2D Bäume oder so was. Ist das im Grunde genommen nicht schon eine Einteilung in Tiles? Wenn wir das Datenmodel schon so gestallten, dass die Objekte in Tiles-Datensätze sortiert sind würden die erwähnten Rechenprobleme würden doch entfallen. Ja, an den Grenzen gibt es viel Hirnschmalz einsetzen. Ds muß ja jetzt jeder Vektor-Tile-Builder auch schon schaffen.

Die Way-IDs sind also eher kleine Indices in die Tile-Lokale-Datenbank. Node IDs braucht es garnicht mehr? Zum Karten Rendern vielleicht nicht, aber für Busslinien etc. schon. Referenzen in Relationen brauchen ggf. neben der Objekt-ID auch die Tile-“ID”. Wenn die OSM-Objekte schon in Tiles sortiert sind kann man sie gut auf verschiedene Rechner verteilen. Editieren im Datensatz aktualisiert quasi sofort die Vektor Tile.

Natürlich sollte der editierende Mensch nicht auf die Tile-Grenzen achten müssen. Ja aber wie sollte dann das OSM-API aussehen? Immer noch nur lat/lon oder schon Tile-bezogen? Denkbar ist beides. IDs werden weiter benötigt. Wenn sie aber schon “Tile.Nr” sind, muß der Editor das auch können. Und wenn ein Objekt über die Tile-Grenze geschoben wird?! Wenn ein Way über nicht nur ein bisschen über die Tile-Grenze ragt? Wenn der oben genannte Zebrastreifen ausgerechnet in der benachbarten Tile ist? Vielleicht brauchen Tiles einen gewisse Überschneidungsbereich und wenn der nicht reicht, wird der Way automatisch gesplittet in Zwei. Wenn eine Relation POIs in ganz Europa auflistet? Sind Tile.ID stabile Referenzen? Als Byte-Offset nicht; und ein Objekt-Index nur, wenn gelöschte Objekte nicht neu vergeben werden. Sollten Objekte besser Rückwärts-Referenzen zu ihren Relationen haben?

So einfach ist das alles nicht, wie ich das hier erträume !!!

Welches Zoom-Level meine ich? Na so 18 vielleicht? Dann kommt man schnell an einzelne Daten. Und wenn die Dateien zu klein und zu viele werden kann man je 4 oder 16 Zusammen fassen, aber so, das nach dem Laden die einzelnen (PBF-)Teile wieder unabhängig verarbeitet werden können. Ob man das auch bis zum World-File treiben sollte? Warum nicht? Über Changesets möchte ich aber lieber nicht nachdenken.

Da war noch die Küstenlinie der Kontinente. Erst mal Teilstücke als Way. Mit Links zu den Nachbarstücken? Relationen für die Teile eines Bezirks oder Lands? Super Relationsbaum bis zu “Australien”?

Ich lege diesen Text jetzt mal hier offen ab; er kann sich aber noch ändern!

The World Augmented by OSM?

Posted by -karlos- on 12 May 2020 in English. Last updated on 14 May 2020.

With Android ARCore and iOS ARKit, you can add virtual objects to your real surroundings. Not only in your room but at any place on Earth because GPS is involved too. Next do native Apps, with the proposed WebXR you may do this in a Browser. Google Chrome (for Android) supports it experimental. And I just discovered the “WebXR Viewer” on iOS doing it too!

So with any Android and iOS device, Smartphone or Tablet you could do it, even with an Oculus Quest and soon other AR classes: Run around outside, viewing into/through your device, rotate or walk along, see the real world and added on top of it OSM-roads, street-signs etc. Even editing may be done this way some day.

I did implement this as a VR-feature in my www.OSMgo.org but lost it later. Now it could be done as AR.

Is anyone experimenting with something like this or would like to team up to start a proof of concept?

Edit May,14

  • Hikar, an native Andorid App. device’s camera feed augmented with OSM roads and sign posts. Its gitlab repository may be valuable. There is a sotm 2019 speech.
  • ARnav Android App. Augments with OSM-POIs. (Still running?)
  • Layar, an native App, Android and iOS (not in my country. Most links don’t work!). Not life but a picture is augmented with OSM.
  • The future of OSM editing? 😉 Sci-Fi Short Film “World Builder”

  • This augmented OSM editor is really funny!

a virtual box on a real lawn

Der Welt-Umradler Peter Smolka (“Lemlem”) hat mir in sein Bucht auch Grüße an die Openstreetmap-Gemeinde geschrieben:

“Mit herzlichen Grüßen an die OSM-Gemeinde. Die OSM-Karten haben mir oft geholfen, besonders im Großstadtschungel und in den ganz leeren Weltgegenden.”

Seine Bücher sind zu empfehlen, wenn man von Abenteuern und vom realen Leben in anderen Ländern lesen möchte: Rad ab, Rad ab 2

Signierung

Wo ist die Lindenstraße?

Posted by -karlos- on 30 March 2020 in German (Deutsch).

Angeblich ist die Lindenstraße ja irgendwo in München. Aber OSM findet dort fast in jedem Stadtteil eine. Der letzte Abspann, ein toller Kameraflug, macht gut ermittelbar, wo die Straße in München liegt:

Screenshot

  • Jeder erkennt dort im Hintergrund die Frauenkirche.
  • Ortskundige sehen rechts davor in Gelb die Theatinerkirche.
  • Auf der Karte erkennt man, die Blickrichtung geht von Nord-Nordost.
  • Noch weiter rechts und näher ist die spitztürmige Ludwigskriche zu sehen.
  • Östlich davon verläuft eine in der Mitte des Bildes sehr weit sichtbare Nebenstraße,
  • Das kann nur die nord-südlich verlaufende Kaulbachstraße sein.
  • Oben erkennt man gut das Newman Haus.
  • Die Häuser weit davor bzw. darunter sind auf Luftaufnahmen identifizierbar.
  • Und die ganz nahen sichtbaren Gebäude davon sind die Nummern 66 links und 65 rechts. Alles davor ist das dazu getrickste Studiogelände in Köln.

F4map.com F4 aufrufen

OSMgo.org OSMgo.org aufrufen

Location: 80539, Maxvorstadt, München, Bayern, Deutschland

OSM Gadget: Radiosender Finden

Posted by -karlos- on 29 January 2019 in German (Deutsch).

Man kommt an einen neuen Ort und will Radio hören, das gute alte FM. Da kann ich die Frequenzen durch-scannen und warten, ob der Sender angezeigt oder genannt wird und das Notieren.

Oder ich nutze OSM. Da sind ja alle Sender mit Namen, Standort, Frequenz und Sendeleistung eingetragen, oder nicht? Dann aber los! Die Eigene Position kennt der Browser oder ich klicke/tatsche mich hin. Overpass findet die Sender in der Nähe leicht und zeigt sie gleich als Karte an; da kann man schon “fühlen” wie gut der Sender zu empfangen sein dürfte. Eine App/Funktion könnte auch noch Entfernung und Sendeleistung berücksichtigen. Das man Hügel im Gelände berücksichtigt ist dann schon Sahne.

Praktisch wären dann Listen (mit besserer Sendeleistungen), nach Name und Frequenz sortiert zum Ausdrucken.

Wo einbauen? Darf ich das in die Standard-OSM-Karte …? Sonst halt eine Eigene - URL, gurmmel.

Das war die OSM-Idee des Tages, #001

"OSM go" - Impressions

Posted by -karlos- on 11 December 2017 in English. Last updated on 13 December 2017.
  • This article gives me a vision of a map, dynamical rendered with the details, I need just now.
  • That should be possible by vector tiles and client side rendering, using WebAssembly.
  • The autor says: This article stems from my work at www.Mapfit.com - a nice tool. I think they use OSM data but don’t have any note to OSM :-(

https://blog.prototypr.io/mapping-the-reality-of-the-world-df7ad81ccb54

MapFit example

Optimising "OSM go"

Posted by -karlos- on 15 September 2017 in English.

A bridge, rendered by OSM building parts

As I wrote last time, “OMS go” will only be used for experiments now. Recently my friend Martin told me about an optimisation, he had done successfully. I implemented it and you may feel remarkable increased control reactions. This is really good if you use the head tracking of Google Cardboard or other stereo devices. To get the best performance, you may need to restart your browser. The 3D interface WebGL is limited and my data handling code is a hack anyway. My new tile handling does have disadvantages: Od shadows ad sunny places. And you can’t select things any more! You may add “&opt=0” to your URL to switch back to the old mode. or switch of shadows by &sha=0

What I did, may only be interesting for codes of 3D renderer:

“OSM go” uses the 3D framework “three.js”. It’s, known as slow, causing bad frame rates. And yes, it does. I am not an expert in 3D hardware and interfaces. But I think there is a bottleneck at the interface to the graphic card. So that problem should also be in OpenGL, Direct-X and WebGL. Sending a package of data (points, three angles, etc. ) from the CPU to the GPU is relatively slow. But the amount of data is not that critically. So you should send less packages with much data. And three.js does the opposite, usually. Each mesh, containing a single geometry with points and faces is send separately to the hardware, again and again in every render cycle.

A three of meshes is a good way to define a complex 3D scene. But an extra mesh is only needed, if you want to change visibility, position and so on. “OSM go” creates an extra mesh for each building, street and stuff. So what? Three.js can merge geometries! After I merged all buildings of a “tile” into one “Multi-Geometry”, the speed increased remarkable. Compare the FPS displayed. You also “feel” now if new OSM data are processed. Moving and spinning gets slow. Just wait or spin a little while and you will “feel” the smooth controls again if it’s over.

It wasn’t a big challenge to implement it. Next to the merges, an array of materials (area-, wall- and roof colors) has to be managed dynamically. The first test was odd: If the zero-point of the geometry went out of screen, the whole multi-geometry got invisible. I assume there is a bounding box, I missed to update after the merges. So it had a size of zero. But who does this invisibility? Three.js or the graphic card? And why are there grey shadows on areas, not placed behind other objects?

I could do some more optimising. May be not in “OSM go” but the next project.

  • With “opt=1” you only merge the buildings, streets, landuse etc. Other OSM-Nodes are in an extra mesh for the closer LOD. They don’t take much render time. But you may switch them of by “opt=2”.
  • The use of BufferGeometries in three.js may increase the speed to
  • I could/should define lower detailed LOD for tiles fare away.
  • I should switch off the tiles “behind me”
  • There is an idea, how to reenable selecting, while using opt=1
  • I hope, OSM download could be done in the background
  • OSM tag analysing should be done by a tile server already
  • I could change the whole project to WebAssembly 8-I

I did have an ongoing dispute with Martin about storing 3D data in the graphic card and NOT loading the whole OSM objects and unchanged 3D tiles again and again for each render cycle. I only want to move the camera! And it looks like i will win. There are buffers in the GPU, may be not usable with three.js. I also found good hints, I should not deleting the whole render data in each cycle. This looks interessting: https://medium.com/@Zadvorsky/into-vertex-shaders-part-1-the-spaces-of-webgl-c70ded527841

While I experiment with the geometry optimisations, I see much ways to set up a new cyclic code and timing concept, but I will do that in a future project.

One more thing ;-)

Cardboard

Do you know, “OSM go” offers two control modes: Inspect- and Segway-Mode. Key X switches mode. And if you start it on a smartphone in landscape orientation, you get a direction controls and stereo view, ought to used in a Google Cardboard.

Now you will control the direction, the Segway is driving to. Just turn your head. First you will se your left or right surroundings. Slowly the (virtual) Segway will rotate to. Instinctively you kann turn back your head and still se the new direction. Puzzled by my words? Try it! Or watch that video: https://youtu.be/mBk1pUc4nZE

-karlos-

OSM go - and stop - what next?

Posted by -karlos- on 21 August 2017 in English.

OSMgo-stop

The development of OSMgo is on hold, may be forever. It was not intended to go that far anyway. I will do small changes now or then. And “support”: If anyone tells me new bugs or a missing feature, I most probably will get active. If you like to use OSMgo with a liddle help, I would be glad to guide you in multiuser mode. My friend Martin is coding a plane control/simulation. Soon you may fly through the virtual 3D world of OSM with/as a model plane. When the intended 3D model server/repository is online, it will be used by OSMgo to.

My whole code is a first shot style, really no clean code and not well structured. It has to be redone from the scratch. And in a way it will. But not by me. There is a project slightly relaying on my work. And I will contribute a bit. In that project, the dead ends of OSMgo may be solved, mostly by analysing the solutions of existing code. Mainly OSM2WORD because it is open source and OSMBuildings with an open source client at last. Are there other good sources? Unfortunely the really good solutions are in commercial products like F4. But they will not support a community project, will they? I would like, not only to have correct and complete code, but also a public description of the functions and algorithms. Yes, in the OSM wiki are pages about multipolygons and more. There are other disasters of complexity in OSMgo: rendering roof types and even roof directions, replacing buildings by building parts. The recursive OSM relations are hell. On the other hand, most of this problems are already solved by the 2D renders. And they are open source!

There are some ugly errors I will not fix. Like my roof typ gabled or the flickering land uses. Some buildings holes or holes in landuses are missing because of an error in ThreeJS. That may be gone in the next version. The frame rate is mostly a mess, mainly because I use ThreeJS. The new project uses Cesium now and so, it will also be limited. But Cesium may partly replace it with “native” code later. A lot of functiionality, like the analysis of OSM tags should not be done by the client but an tile server, a vector tile server of course. There are quite a view such servers already, most of them are commercial. I would be happy, if the OSM community would set up its own independent server and code.

Creating the Houses of Parliament in London etc. in details with building:parts is artwork of it’s own kind. I am always impressed what some OSM user have done. I started the page “https://wiki.openstreetmap.org/wiki/Simple_3D_Art” and almost forgot it. There are much more artful places in OSM. Some can be found in the twitter feed “OSM__go”. But I think, creating labyrinthine Objekte as “Simple 3D buildings” is only ok ok for really simple buildings. If I see an artful created fountain in Paris, I don’t think, that should be part of the OSM data base. That’s a job for the model server. Building heights or levels are necessary, roof types and colours are fine. But building:parts only intent do create an exact outer view. And they will interfere with indoor mapping! For objects of a certain complexity, they should be “exported” into a file format for 3D editors and the 3D model should be placed in the model server.

I see OSMgo as a sandbox for experiments. Recently, I added an OBJ file of my favourite space ship Orion (http://www.orionspace.de/ww/de/pub/english.htm). After “running” around it, I wanted it to fly. That may happen in OSMgo. And it may be my next big project, a “Syfy Space Sip Simulator”. Off-course OSM would be used to show the Earth. So that would be a union of my long time hobbies: Raumpatrouille/Science Fiction, OSM and gravity simulation. After a start in Javascript I may change to WebAssembly & Apple Swift and may even use the VR-Kit. (Mabbox is showing some experiments with OSM and VR-Kit already.)

What do you think about this: The OSM community should start an OSM 3D renderer in WebAssembly. Oh, wait a minute! Java can be compiled into WebAssembly. So OSM2WORLD could run as an Web-App. Supported by a good tile server it could make OSM great again (sorry, a spontaneous joke). But not only 3D! A 2D renderer is almost a subset of a 3D one. But in this case, it would be a 2D vector renderer with many advantages. The view of all objects configurable by MapCSS, even the zoom-height it gets lowly visible, or not at all. So you define the content and the layout. We don’t need special maps for horse riding or what ever, but just a new MapCSS. There are many vector renderer already. Except the experiments, sadly they all are commercial. A community 2D(+3D?) vector renderer in WebAssembly could be the future landing page of OSM.

-karlos-

OSM go - und stopp - was nun?

Posted by -karlos- on 21 August 2017 in German (Deutsch).

OSMgo-stop

Die Entwicklung von OSMgo ist angehalten, vielleicht für immer. Das es so weit geht war garnicht angedacht. Ich werde hi und da kleine Änderungen machen. Und “Support”: Wenn jemand neue Fehler meldet oder Funktionen gewünscht werden, werde ich sehr wascheidlich aktiv werden. Wer beim Benutzen von OSMgo etwas Hilfe möchte, den werde ich mit Freuden im Multiuser-Modus begleiten. Mein Freund Martin schreibt gerade Code für eine Flugzeug-Steuerung/-Simulation. Bald kann man mit einem Modellflugzeug durch die virtuelle 3D Welt von OSM fliegen. Wenn der geplante 3D-Server/Service online ist, wird er auch von OSMgo genutzt.

Mein ganzer Code ist nur ein erster Versuch, wirklich kein Clean Code und nicht gut strukturieret. Er müßte komplett neu gemacht werden. Und in gewisser Weise wird er das. Es gibt ein Projekt, teils auf meiner Arbeit aufsetzt. In dem Projekt werden die Sackgassen von OSMgo hoffendlich gelöst, meistens, durch Analysen von vorhandenem Code. Hauptsächlich OSM2WORLD weile es open source ist und OSMBuldings mit einem zumindest offenen Client. Gibt es andere gute Quellen? Die wirklich guten Lösungen sind leider in kommerziellen Produkten wie F4. Aber die werden ein Kommunity-Projekt nicht unterstützen, oder? Ich möchte nicht nur korrekten, kompletten Code sondern auch eine öffentliche Beschreibung der Funktionen und Lösungen. Ja, im OSM-Wiki sind Seiten zu Multipolygonen und mehr. Da sind noch andere Katastropen von Komplexität im OSMgo-Code: Rendern von Dachtypen und sogar Dachrichtungen; Gebäude ersetzen durch Gebäudeteile. Die rekursiven Relationen sind die Hölle. Andererseits, die meisten dieser Probleme sind schon von 2D-Renderern gelöst. Und die sind open soruce!

Einige fiese Fehler werde ich nicht mehr flicken. Wie meinen Dachtyp “gabled” oder das flackern bei Landflächen. Einige Haushöfe oder Lücken in Landflächen fehlen wegen eines Fehlers in ThreeJS. Das könnte in der nächsten Version weg sein. Die Framerate ist meistens schlimm, hauptsächlich, weil ich ThreeJS nutze. Das neue Projekt nutzt Cesium und wird so auch begrenzt sein. Doch Cesium mag später durch nativen Code ersetzt werden. Viele Funktionen, wie die Analyse der OSM-Tags sollten nicht vom Client sondern von einem Server erledigt werden, ein Vektor-Tiel-Server natürlich. Es gibt da schon einige Server, aber meist kommerziell. Ich würde mich freuen, wenn die OSM-Gemeinschaft eigenen Server-Service /- Code erstellt.

Erstellen der Houses of Parliament in London usw. mit building:parts ist eine eigene Art von Kunst. Ich bin immer beeindruckt, was mansche OSM-User geschafft haben. Ich habe die Seite “https://wiki.openstreetmap.org/wiki/Simple_3D_Art” angefangen und dann fast vergessen. Es gibt viele kunstvolle Orte in OSM. Einige kann man im Twitter-Feed “OSM__go”. Aber ich denke, verwinkelte Objekte sollten nur mit “Simple 3D buildings” gebaut werden, wenn es wirklich simple Gebäude sind. Wenn ich einen kunstvoll gebauten Brunnen in Paris sehe, denke ich, das sollte nicht Teil der OSM-Daten sein. Das eine Aufgabe für einen Modell-Server. Gebäudehöhen oder Stockwerke sind notwendig, Dachtypen und Farben sind prima. Aber building:parts wollen nur die Aussenansicht von Gebäuden genau darstellen. Und sie beissen sich mit Indoor-Mapping! Objekte mit einer gewissen Komplexität sollten in ein Dateiformat für 3D-Eitoren “exportiert” werden und das 3D-Modell sollte in den Modell-Server gepackt werden.

ich sene OSMgo als einen Spielplatz für Experimente. Kürzlich habe ich eine OBJ-Datei meines Lieblings-Raumschiffs eingebaut (http://www.orionspace.de). Nach einem “Spaziergang” ‘drumherum wollte ich , dass es auch fliegt. Das mache ich vielleicht auch noch in OSMgo. Das könnte aber ich mein nächstes großes Projekt geben, einen “SF Raumschiff-Simulator” Natürlich wird OSM genutzt um die Erde darzustellen. So würde das eine Vereinigung meiner Langzeit-Hobbies: Raumpatrouille/Science Fiction, OSM and Gravitationssimulation. Nach dem Start in Javascript wechsle ich vielleicht zu WebAssembly & Apple-Swift und benutze eventuell sogar VR-Kit. (Mapbox zeigt schon einige Experimente mit OSM und VR-Kit)

Was denkst du darüber: Die OSM-Gemeinschaft sollte einen SMO 3D renderer in WebAssembly anfangen. Oh, warte mal! Java kann zu WebAssembly übersetzt werden. So kann OSM2WORLD als eine Web-App laufen. Unterstützt von einem Vektor-Tiel-Server könnte das OSM “make great again” (Sorry, ein spontaner Witz). Aber nicht nur für 3D! Ein 2D-Renderer ist fast eine Untermenge von 3D. Auf diese weise würde es ein 2D-Renderer mit vielen Vorteilen: Das Aussehen von allen Objekten konfigurierbar mit MapCSS, sogar die Zoom-Höhe bei der es langsam sichtbar wird, oder auch nie. So bestimmt man den Inhalt und das Aussehen. Wir brauchen keine extra Karten fürs Reiten oder so, nur eine neue MapCSS. Es gibt schon eine menge Vektor-Renderer. Außer den Experimentellen, sind leider alle Kommerziell. Ein 2d(+3D) Vektor-Runderer in WebAssembly der OSM-Gemeinschaft könnte die zukünfige Landingpage von OSM sein.

-karlos-

Multiuser mode

Now, you may go into the OSM-Data world and visit places ‘together with a friend’. As you move around, you will see your company next to you, also moving and watching. If you just start “OSM go”, your user name will be the name of your country. Or call www.osmgo.org?user=myName. Use a nickname or even better, use your OSM-name. A 2nd-click any place you want to visit and select the icon of “OSM go” to enter. Your friend may follwow you, using the slippy map (see below).

multiuser

There is a ‘chat’ implemented in “OSM go”! Press key C and enter text in the popup dialog. The actual chat texts will be shown in the text box at the top left. There you will also see if an other user is dropping in or leaving. If you like to test it with me (-karlos-) just send me a time, I may be there and guide you. So don’t be afraid if you use “OSM go” and see a moving smile. Some visitors and me had already a lot of fun doing this. Some user of “OSM go” may have been shocking surprised, sorry.

Slippy map

The new slippy map is done with Leaflet. You will see it, as you call www.osmgo.org or if you press the key M while using “OSM go”.

slippymap

Usually, you will see the OSM default world map with additional layers:

  • A number of city icons, you may mostly know as ‘Demo areas’ from the wiki page Simple 3D buildings. A klick at one of them will show the map menu. There you may select none of the existing 3D renders. The arrow at right will zoom in to the place or zoom out to the world map.

There are the usual map zoom controls, a search control to find a place on earth by text and a control to zoom to your actual location. The cursor keys, mouse- or touch-drag will slip the map. The keys plus/minus and the mouse weel will zoom. A double-click/-touch will zoom in, a single-click/-touch will zoom out. A 2nd-mouse-click at any place or a long touch will popup the map menu as descripted above.

With the menu top right you may activate some “OSM go” specific layers:

  • “OSM go” shows all users as an icon. Active users will be shown as a smily. A klick on one will show the map menu. If you zoom in by the arrow, you may even see the user move its actual position across the map. If you enter “OSM go” yourselves now, you will arrive next to your OSM-friend. If a user starts “OSM go” or gets passive, you will get an message by the map.

  • Layer “You” will get active, if you klick on the “location” control at bottom left. Your browser will ask you to use your actual location, show an icon and will zoom in to it. Also the location, determined by your IP address will be shown.

  • “Visits” will show a lot of red cycles: Places, other users did visit recently. Form the very last visit, the home of the visitor is shown in blue. Of course, a click on a cycle will bring the map menu to start a 3D renderer.

If you visit the map with an given user name (by adding ?user=myName to the URL) only the layers “OSM go” and “Visits” are active.

The map code/function isn’t final. It would be nice, if someone will help me using Leaflet accurate. Like: how to use the enter key for text search. As avatar I used an creepy human eye first, then a glass eye. There should be a way to select or even download an individual avatar, like the eye of 2001-HAL or whatever. ** ‘OSM go’ uses a lot of URL parameter. I would like to replace them by a map menu, but I don’t know how to do it - yet.

Outlook

  • There is a lot of gaps to fill, like more roof shapes.
  • There should be a 3rd person view with an avatar like in “Pokemon GO”.
  • The primary intention, to make a “game” to help OSM is still present. In the last days, I played Pokemon to get inspirations. May be: Find new shops or changed places, take pictures to enable arm chair editing the tags of the places.
  • I consider to recode “OSM go” in C++ (or Shift ) to have native applications - and use WebAssembly to run it in browsers.

Multiuser-Mode

Jetzt kann man die Welt der OSM-Daten zusammen mit einem Freund besuchen. Während man sich bewegt sieht man neben sich die Begleitung, sich bewegen und umsehen. Startet man “OSM go” bekommt man als User-Name den seines Lands. Oder man nutzt www.osmgo.org?user=myName für einen Rufnamen oder noch besser, seinen OSM-Namen. Ein Klick mit der zweiten Maustaste dort, wo man hin will und ein Klick auf das Icon startet “OSM go”. Ein Freund kann folgen, in dem er die Slippy-Map nutzt (siehe unten)

multiuser

In “OSM go” ist ein ‘Chat’ implementiert. Die Taste C öffnet einen Dialog um Text einzugeben. Die aktuellen Chat-Texte werden oben-links in der Text-Box angezeigt. Dort sieht man auch, wenn ein User erscheint oder verschwindet. Wer es mit mir (-karlos-) testen möchte sende mir einen Zeitpunkt; vielleicht bin ich da als Begreitung. Also nicht überrascht sein beim benutzen von “OSM go” wenn ein Smily herumsaust. Einige user hatten schon einigen Spaß dabei. Mancher mag auch erschreckt worden sein, sorry.

Slippy map

Die neue Slippy-Map wurde mit Leaflet erstellt. Sie wird sichtbar, wenn man www.osmgo.org aufruft. Or wenn man die Taste M drückt während man “OSM go” nutzt.

slippymap

Normalerweise sieht man die Standard OSM-Karte mit weiteren Layern:

  • Eine Anzahl von Stadt-Icons, die man von ‘Demo areas’ auf der Wiki-Seite Simple 3D buildings kennt. Ein klick auf eines davon zeigt das Map-Menü. Dort kann einer der 3D-Renderer ausgesucht werden. Der Pfeil rechts zoomt hinein zu dem Ort oder ‘raus zur Weltkarte.

Es gibt die üblichen Karten-Zoom-Bedienungen, eine Suche um Orte auf der Erde per Text zu finden und einen “Knopf” um zu seinem eigenen Ort zu kommen. Die Cursor-Keys, Maus-Ziehen oder Touch-Wischen verschiebt die Karte. Die Tasten Plus/Minus und das Mauspad zoomen. Ein Doppelklick zoomt hinein, ein Einfachklick ‘raus. Die zweite Maustaste irgendwo auf der Karte oder ein langer Touch bringt das Map-Menü wie oben beschrieben.

Mit dem Menü oben rechts kann man verschiedene “OSM go” spezifische Layer aktivieren:

  • “OSM go” zeigt alle user als Icon, aktive als Smily. Ein klick auf einen bringt das Map-Menü. Wenn man dann mit dem Pfeil zoomt könnte man vielleicht sehen, wir ein user sich über die Karte bewegt. Wenn man hier selbst “OSM go” startet, landet man neben seinem OSM-Freund. Wenn ein anderer user “OSM go” startet oder verläßt, bringt die Karte eine Nachricht.

  • Layer “You” wird aktiv, wen man den “Location-Knopf” drückt. Der Browser fragt, ob er die aktuelle Adresse nutzen darf, zeigt dort ein Ikon und zoomt hin. Auch die Adresse, aus der IP ermittelt, wird als Icon angezeigt.

  • “Visits” zeigt eine Menge roter Kreise: Orte, die andere user kürzlich besucht haben. Vom letzten Besuch wird der Ort des Besuchers als blauer Kreis angezeigt. Und natürlich bringt ein Klick auf einen Kreis das Map-Menü um einen3 D-Renderer zu starten.

Wenn man einen eigenen Namen angibt (durch ergänzen von ?user=myName zur URL) sind nur die Layer “OSM go” und “Visits” aktiv.

Die Kartenfunktion/der Code ist nicht fertig. Es währe schön, wenn mir jemand helfen könnte, Leaflet richtig zu verwenden. Z.B.: Die Enter-Taste nutzen bei der Textsuche. Als Avatar habe ich erst ein erschreckendes menschliches Auge, dann ein Glasauge verwendet. Es sollte möglich sein, eigene Avatare hoch zu laden; wie das Auge vom 2001-HAL oder was auch immer. ** ‘OSM go’ verwendet einige URL-Parameter. Die sollten auch durch Karten-Menüs ersetzt werden. Nur Ich weis (noch) nicht wie das geht.

Aussicht

  • Es gibt noch viele Lücken zu füllen, wie weitere Dach-Typen.
  • Es soll eine 3rd-Person Ansicht geben mit Avataren wie in “Pokemon GO”.
  • Die ursprüngliche Idee, ein “Spiel” zu machen, das OSM hilft ist noch da. In den letzten Tagen habe ich Pokemon gespielt, zu inspiration. Vielleicht das: Finde neue Läden oder Geänderte, mach Bilder, damit man dann per Schreibtisch-Arbeit die Tags ändern kann.
  • Ich überlege, “OSM go” neu zu erstellen, in C++ (oder Shift ) um native Anwendungen zu erzeugen - und zum starten im Browser WebAssembly zu nutzen.

Laut seinem Blog-Beitrag “Friends de Tour” nutzt er neben Papierkarten OSM für den Feinabgleich und findet manches auch nur bei OSM - http://www.tour-de-friends.de/TR-Balkan/ Siehe auch: “Landkarte oder GPS?” - http://www.tour-de-friends.de/LandkarteOderGPS/

Location: Vaniköy, Kandilli Mahallesi, Üsküdar, İstanbul, Marmararegion, 34684, Türkei

Passau, das ist doch die Gelegenheit, mal Leute zu treffen. Bisher war ich nur mal war ich beim OSM Treffen in Nürnberg, dagegen war Passau ein Kulturschock. In meinem “vorherigen Leben” hatte ich als Raumpatrouille-Fan schon einige Veranstaltungen besucht. OSM ist mindestens genau so kreativ.

Bei meiner Bastelei an “OSM go” hatte ich ein paar Kontakte geknüpft. Nun hoffte ich, einige Aktive persönlich zu sehen, vielleicht auch User, die Feedback zu OSM go geben. “3D-Rendern” währe doch ein Thema. Kaum getwittert, wurde ich überredet, das im OSM-Wiki vor zu schlagen und auch gleich als “Moderator” uh! In den Wochen danach wurde jeden Tag mehr oder weniger programmiert. “Muss das bis Passau fertig sein” fragte meine Herzallerliebste. Na ja, nicht wirklich; “fertig” gibt es bei sowas ohnehin nicht. Aber halbwegs Fehlerfrei währe schon gut.

ANREISE UND ABEND

Dann war es Freitag, die FOSGISS schon in vollem Gange und ab Mittag wurde ich unruhig, bin bald weg von der Arbeit und zum Zug. ICE ohne Platzreservierung erhöht den Abenteuerfaktor noch. Schließlich saß ich mit einem 2-Jährigen plus Vater an einem Tisch und statt Notebook und Code kneten gab es Gebabbel und Fingerspiele.

Mein erster Eindruck von Passau: Es ist nicht so flach, wie es auf OSM aussieht. Immer muß man über diesen Hügel in der Mitte und es gibt nicht mal einen direkten Fußweg zur Uni. Dort kannte ich zwar die Hörsaal-Nummer und dachte, wenn da überhaupt welche ‘rumlaufen, ist es der OSM-Event. Von wegen. Erst mal war Info-Wochenende für neue Studenten. Gut, die kann man doch von typischen OSM-Mappern unterscheiden: Männlich, älter, rumstehend und Plaudernd. Ich wurde auch schon vor der Tür nett begrüßt; ok war eine Verwechslung. Innen liefen welche mit Ausweisen am Gürtel ‘rum. Ordner? Ich fragte nach OSM und wurde in den Hörsaal gewiesen. Äh? Der Beamer verkündete einen Vortrag von Gregor Gysi! War das geplant? Nein, falsches Gebäude. Weiter laufen!

Das Gebäue IM kam noch, aber alles war ausgestorben. Hm, aus keinem “Kellerloch” schimmerte Licht. Im Untergeschoss in einem Raum voller Steckdosen und Netzkabel waren sie, die Mapper und setzen die Beute vom nachtmittäglichen Ausschwärmen durch die Stadt in Nodes und Ways um: in Gruppen vertieft in Details. Nach einigen Blicken über die Schulter auf Notebooks und Tabletts, meist mit laufendem JSOM, schaute doch mal jemand auf und so ergaben sich schnell ein paar erste Gespräche. Das steigerte sich, da “wir” in die Innenstadt zogen um gemeinsam zu Essen und zu Fachsimpeln. Da flogen mir Themen und Namen von Tools und Personen nur so um die Ohren. Oh man, Insider unter sich! Irgendwann konnte ich mich einhakten und meine Meinung beitragen, auch ein bisschen mit meinem “OSM go” angeben und schließlich auch Kontroversen austragen.

Schon seit Jahren finde ich nämlich, das OSM irgendwo bei Pixelgrafik stehen geblieben ist wo alle Firmen längst Vektor-Maps bieten. Da gab es natürlich Kontra: Das dauert 5 Jahre bis wir wieder das haben wie heute. Was soll das bringen, es gibt doch jetzt schon Layer zum auswählen. Die Dummuser können die Filtermöglichkeiten von Vektor-Renderern sowieso nicht bedienen. Als Plus galt höchstens, dass die OSM-Server entlastet würden, wenn Clients selbst rendern. Ja ok, das kann ich alles nicht beurteilen. Aber ich nutze fast täglich mein Smartphone mit einer OSM-Vektor-App (Pocket Earth) und finde es super, dass ich so lange zoomen kann, bis POIs sichtbar werden, die OSM.ORG nie zeigt. Das ich Bushaltestellen suchen kann, etcetera plus plus. Bitmaps, läuft, bliebt so; denkt man da nicht zu wenig innovativ? Gefühlssachen sind schwer zu diskutieren. Bei OSM hat der recht, der am meisten tut oder dessen Tools am meisten genutzt werden, hm? Also müßte “man” halt mal eine Vektor-Client Web-App angehen. Da ich das in “OSM go” irgendwie so ein bisschen ja schon habe, könnte ich … nein, nicht noch ein Projekt! Oder doch?

Irgendwann ging es um, äh, Area-Routing? Jedenfalls um Flächen, wo sie da und gut sind oder nicht. Der Schelm in mir mußte vorschlagen, doch nach und nach alles, alle Wege usw. nur noch als Flächen zu taggen. Gehsteige einzeln. Alles was als Linie unklar ist, läßt sich als Fläche definieren. Wobei man die Level/Stockwerke getrennt betrachten muss. Da war die Reaktion dann so wie “Utopist”, Streß für Routing aber auch: Dann ist endlich klar, dass man für den Wald die Nodes des Way benutzen kann :-)

OSMler sind Menschen die auch ohne (viel) Alkohol glücklich sein können. Der Abendplausch löste sich noch vor Mitternacht auf, man strebte seinem Hotel zu. Ich war im IBB Hotel (Der Rabat mit der DB-Karte war genau so gut wie der von der FOSSGIS), habe aber dort niemand von OSM bemerkt. Der Weg vom/zum Hotel ist nicht der kürzeste und geht natürlich über/auf diesen Hügel in Passau. Den Fußmarsch hatte ich als Ausgleichssport vorgesehen. Und mit OSM-Karte findet man auch die kürzeste Verbindung durch Seitengassen, and der Brauerei vorbei, oben links die Treppe bis zu der schönen Kirche, leider ohne “building:part”, am Orion-Shop vorbei (Jetzt mit Fetisch verkauf) und hinein zum Nachtportier.

Brauche ich WLAN? Aber hallo! Das war überhaupt ein Phänomen bei der Reise: Über all hatte ich WLAN (ausser im Regionalexpress). Am Bahnhof 30 Minuten gratis. Im ICE, im Hotel: frei. Und in der Uni? Auch, na ja, man hätte früher da sein, und ein Formular ausfüllen müssen! Doch schon am ersten Abend wurde mir Hilfe versprochen und Samstags fand sich schnell ein “Reserve Login” für mich: Dank an den Spender. Dabei war die Un-Konferenz so persönlich und kommunikativ, dass WLAN garnicht nötig war. Das nutzte ich dann, zwischendurch und während der ganzen Rückreise, um in “OSM go” einen rudimentären Multi-User-Mode ein zu bauen. Ich hatte die Idee bei Gesprächen erwähnt und viel Zustimmung erfahren. Jetzt kann man andere Nutzer sehen, die an den gleichen Koordinaten die virtuelle OSM-Welt erkunden. Sogar wo andere hin sehen. Klar muss da noch einiges dazu: Chat, eine Einstiegs-Seite/Karte. Natürlich geht uns Freaks da die Phantasie durch. Jemand hat gleich Doom vorgeschlagen. Na ja, gehen würde viel, wenn sich Interesse und Tester melden.

SAMSTAG

Die Ankunft in der Uni war wieder schräg. Kaum auf dem Gelände plaudere ich mit jemandem. Aber auf OSM reagiert er kaum, hm, er hatte mich für einen Lehrer-Kollegen gehalten :-) Diesmal war das IM nicht verweist. Draußen, das Wetter war super, tippte einer in seinen Klappkomputer, drinnen schwirrte man hin und her. Ein junger Mann mit windigem Bart kam aus dem Hörsaal und rief “Kann hier jemand Kaffee kochen?”. Wie bitte? Er hatte noch nie, auch nicht getrunken. Na ja, Kaffeemaschinenerfahrung hatte ich, also bin ich mit ihm hoch in ein Hinterzimmer mit Doppel-Brüher. Trotz falscher Filtergrößen und fehlendem Messlöffel konnten wir uns auf einen Pulferfüllstand einigen. Mit dem Tipp, zu warten bis es nicht mehr tropft konnte ich dann wieder ‘runter und vor der Tür erst mal die Liste der vorgeschlagenen Themen gelesen. Ich steh’ da drauf, schluck! Zwei andere schleppten zwei Tische in den Saal, und hatten wohl auch sonst eine tragende Rolle. Tür aufhalten kann ich ja auch.

Es gab Butterhörnchen, Müslirigel, Obst; nett. An der Tafel Passau, groß als OSM-Karte, heute bin ich am richtigen Ort. In diesem Gebäude befindet sich die einzige Toilette Passaus, die unterirdisch getagt ist. Dann brach das organisierte Chaos los. Ein bisschen Resümee von Gestern, Mittagessensplanung, und wir das so geht heute. Jeder hat sich kurz mit OSM-Schwerpunkt vorgestellt, dann die Themen. Wer will bei was mitmachen. Die 6 nachgefragtesten Themen/Gruppen wurden auf Räume und Zeitslot verteilt. Ich bin erst zum “Area-Workshop”. Den Unterschied Old-/New-Style - Tags am Outer/Relation hatte ich augenscheinlich erlebt, als “OSM go” nur eins von zwei “gleichen” Gebäuden anzeigte. Tags setzt man ja immer total konsequent, systematisch … ja, ja. Als zweites “Lidar”: Ein 3D-Laserscanner für unterwegs, faszinierend. Am Quadrocopter könnte man Häuser und Dünen erfassen. Leider habe ich bei der Verlosung der Geräte verloren.

Passau WC - level=-1

Mittags gabs überraschenderweise schon wieder Pizza. Die habe ich aber sozusagen verpaßt, da ich total in mein Multi-User-Zeugs fokussiert war. Tagsüber gab es immer wieder spontane Gespräche. Es hat mich gefreut, das Tobias (OSM2World) da war. Wir 3D-Renderer hatten einiges auszutauschen. Ich staune immer wieder, was er da für Lösungen in seinem Code hat. Dann war mein Thema 3D-Rendern dran. Na ja, etwas holprig war ich schon. Wie bekommt man aus OSM-Tags die 3. Dimension herausgelockt? Gibt es Default-Renderebenen? Warum macht jeder seien Code? Wie kommt man am besten an die OSM-Daten. Das Thema Vektor-Tiles hatten wir ja Freitags schon. Das war dann auch mein eigenes spontanes Resümee am Ende: Egal ob 2D oder 3D, ein gemeinsames Tiel-Konzept währe schon gut: Bei Vektor braucht man weniges “Zoom”-Stufen aber alternative Tiles für Wichtige/Alle Daten. Da war doch schon was …

Der Tag “beruhigte” sich dann. Von allen besprochenen Themen gab es kurze Zusammenfassungen vorbei viele Teilnehmer schon zu ihrer Rückreise aufgebrochen waren. Der Rest einigte sich für ein deftiges Abendessen auf den Bayerischen Löwen. Dazu gab es die letzten Anekdoten. Ja, in Passau kann man zu Fuß nach Österreich spazieren. Das man dabei am Bahndamm ‘rumgeistert um Daten von Signalen zu erfassen ist dann wieder OSM-freaky. Die Bahn-Nerds habe ich dann gleich angebohrt um Hilfe für die 3D-Darstellung von Signalen zu bekommen. Spät wurde es bei mir nicht da ich auch noch am MultiUser-Mode coden wollte.

ABREISE FÜR IMMER?

Auch der Sonntag war ein sonniger. Zum Bahnhof ging es wieder auf direktem OSM-Weg über Hintertreppen. Passau bietet Abwechslung. Ein österreichisches Zollgebäude, viele “Man in Black” am Bahnsteig und im ICE, Grenzgebiet, “Betreten sie den Zug erst, nach dem die Beamten ihre Überprüfung beendet haben”. Über den OSM-Event habe ich erst zuhause richtig nachgedacht. Würde ich wieder zu sowas fahren? Nein, zu ineffizient. Aber es war ja das erste Mal, die ersten Kontakte. Freunde wieder zu treffen kann “süchtig” machen. Mal sehen, wo was statt findet. Berlin währe gut.

-karlos-

Location: 94032, Innstadt, Jägerhof, Passau, Bayern, Deutschland