Es gibt auch diese Woche etwa zu berichten ;-) Es geht voran, zu langsam und doch zu schnell: Zu schnell geht es, weil meine Begeisterung mein Restleben und den Nachtschlaf beeinträchtigt. Zu langsam weil das Testen mit Javascript eine Qual ist per „Console.Log“, am Smartphone gar nur „alert“. Gibt es ein gutes Framework mit Beakpoints?

Was hat sich getan: Erst muss ich mal erwähnen, dass ich schon lange mit einem Freund zusammen 3D-Javascript bastle. Martin hat mir mal eben den Download mit AJAX und das Scannen des OSM-JSON gebastelt. Da konnte ich dann meine „new Node“ usw. eingehängt – schon wurde, statt ein paar Test-Daten, ein echter Ausschnitt aus OSM sichtbar, siehe Bild-Kommentar zum letzten Post. Es waren erst mal nur Highways und Buildings. Für die Tag-Auswertung war ein Konzept notwendig; jetzt gehen schon einige Tags mehr (leisure, waterway, landuse) aber immer noch rudimentär. Die „higway“s verschieden breit, Farben später. Bei „power“ war es erst mal Spaß, an jeder Node einen kleinen Mast auf zu stellen und diese dann mit Leitungen zu verbinden. Das auch „building“s zusätzlich „power“ haben können zeigt, dass die Main-Typen eine Priorität haben: Wenn das Tag „building“ da ist, ist „power“ ein Sub-Typ bzw. Detail-Info zum Gebäude. Gibt es eine Beschreibung der Logik des Renderns, als Text oder Pseudo-Code?
Lustig war auch, dass mein Code gleich den Fehler Tag-Array-Länge-Null geschmissen hat. Da ist tatsächlich ein recht lange Way ohne Tags in meiner Nachbarschaft. Darf ID das? Kein Felhler: die Tags sind an der Relation zu der der Way gehört: Ein Wasserschutzgebiet.
Meine 3D-Darstellung ist eher plakativ als realistisch, um die Flächen-Typen zu verdeutlichen. Es gibt Kartenstiele, die Farben etc. festlegen. Eine habe ich gefunden. Wäre es gut, wenn ich die einlese und alles „genauso“ darstelle? Gibt es fertigen Code, um diese Dateien ein zu lesen?
Demnächst will ich mir bei OSM2WORLD (und Cartagen) ansehen, wie die das machen, um so zwischendurch auch den Renderer zu verbessern. Von OSM2WORLD habe ich einen YouTube-Vortrag gesehen, sympathischer Knabe :-)
Auch GPS ist inzwischen angezapft; so wird schön die eigene Umgebung als dargestellter Abschnitt ausgewählt. Noch sind die Lauf- und Zykluszeiten harmlos. GPS und Overpass-Abfrage dauern da länger. Zum Testen ist es oft besser, GPS und AJAX durch Dummies zu ersetzen, läuft schneller und erzeugt keinen Stress für Overpass, das nicht immer schnell läuft. Es ist ja auch nicht als „Arbeits-Server“ gedacht. Für das Gaming/3D-Surfing wird irgendwann eine eigene Server-Instanz notwendig sein. Ob Overpass der richtige Vektor-Tile Server ist? Gibt es bessere? Von OSM selbst?
Wie bei 2D-Karten üblich kann man auch hier beim 3D-Rendern zusätzliche Infos als „Layer“ einbauen, als Erstes „Keep Right“. “kort.ch“ macht das ja auch (in 2D). Bei kort kann ich das API und den ganzen Ablauf erkunden, sogar in Javascript! Welche Layer sind noch gut? Wikipedia, GeoCashing, OpenStreetView, welche Wünsche habt ihr?
Eine Gamification ist (fast) auch nur ein Layer. An einem Samstag habe ich ein simples Game eingebaut: Um die GPS-Position, an der der „Spielers“ OSM go startet, schwebt über jeder Node eine Kugel. Kommt man näher als 15m wechselt sie die Farbe, schwebt hoch und verschwindet. Und man bekommt 100 Punkte :-) Dazu reichen 65 Zeilen Code; natürlich alles roh und ohne Luxus. Ich habe aber mal zwei Level-Intros erdacht:
- Du bist Packman! Schnapp dir all gelben Punkte um zum nächsten Level zu kommen.
- Das Reich der Feen kannst du nicht sehen. Die Kamera deines Smartphones sieht mehr! Deine Fee hat goldene Kugeln für dich verteilt. Geh hinaus und suche sie alle, dann wird die Fee sich bei dir melden. Gehe nicht auf die Straße! Die Kugeln spüren dich und kommen zu dir.
Hier kann es jeder ausprobieren: (www.ac1000.de/osm)
Ich suche Pilot-Tester! Wer macht mit?
Ich habe nur mit iPhone Notebook getestet! Was geht bei Android? Es sind noch einige Render-Fehler enthalten, da geht’s hin wenn die Control geht.
- Beim Smartphone sollte sich beim Drehen die Umgebung 1:1 grob wieder finden (plus Kugeln über den Nodes). Und beim Laufen sollten sich OSM-Darstellung und Realität synchron verschieben, soweit GPS genau ist. Auf zum Punkte sammeln!
- Am Notebook kann man mit der 1. Maustaste drehen, mit der 2. Sliden und mit dem Rad zoomen.
Und wenn garnichts geht, neben den Bildern gibt es hier auch ein kleines live Video.
Mit GPS, JSON und “Packman” ist das „proof of concept“ eigentlich getan, jetzt müssen die vielen Feinheiten dazu, damit es sich ein Programm/Spiel nennen darf. Und die Grobheiten: Bedien-Funktionalität, Level usw. Zunächst bin ich dabei aus diversem Code einen eigenen Control basteln müssen. Bisher ist das Handling noch dürftig. Es soll ja mit Key, Maus und Touch genehm; am PC, Tablett und Smartphone; ohne und mit 3D-Brille; Bewegung frei oder per GPS; laufen, schweben, fliegen übergangslos hoch bis es in eine 2D-Ansicht über geht. Der Anwender soll selbst entscheiden, wie er Packman spielt oder Hausnummern sucht. Er soll auch einstellen können, bei welchem Zoom-Level was eingeblendet wird.
Eine 3rd-person ansieht wie bei Pokemon GO wird es natürlich auch geben. Aber keinen Körper-Editor sondern eine Symbol-Figur. OSM hat kein Plüsch-Maskottchen, oder? Eine Symbolfigur die jeder kennt, das für bewegen über die Erde steht. Ich denke da an einen lustigen Zugvogel. Andere Vorschläge?

Discussion
Comment from MeisterLampe on 29 August 2016 at 17:05
Hallo Karlos, ich werde nichts zu dem Projekt beisteuern könne, da ich keine Ahnung von Programmierung habe, aber ich möchte dir und deinen Kollegen Mut machen. Ich finde es jetzt schon Geil! Weiter so, ich bin echt gespannt drauf wie es weiter geht und lese deine Berichte gerne!
Gruß Mario aus Brasilien
Comment from -karlos- on 29 August 2016 at 19:11
@MeisterLampe: Ha, jetzt hab’ ich dich! Du kannst auch ohne programmiererei helfen. Hast du es sehen und bedienen können? Auf welchem Gerät? Machst du 1-2 Screenshots, die dir gefallen? Was denkst du, sollte (als nächstes) gehen? Wie sollte die Bedinung deiner Meinung nach sein, welche Tasten/Gesten?
Brasilien und Deutsch, wie das? Ich war mal beruflich in Curitiba, war gut gemappt. Der Ort TelÍmaco Borba mit der Papierfabrik dann aber kaum. Mit der Seilbahn durfte ich fahren.