Panorama-Sphere
Der Typ Panorama-Sphere beschreibt das Aufnahmezentrum eines Kugelpanoramas für PlexMap Street360°. Es werden alle relevanten Informationen wie Kameraposition und Kameraorientierung gespeichert.
Ein Objekt vom Typ Panorama-Sphere muss den Namen der Bildaufnahme ImageId als Attribut enthalten sowie die Attribute Heading, Roll, Pitch und HeightOffset. Das zu jedem Aufnahmezentrum zugehörige Panoramabild kann über den Typ File importiert und zur Aufbereitung zusammen mit der Panorama-Sphere in einem Layer gespeichert werden. Dabei wird ein 360°-Panoramabild in der äquirektangulären Projektion (einfache Zylinderprojektion) vorausgesetzt.
| Attribut | Funktion |
ImageId (string) | Bildname des Panoramas |
Heading(float) | Rotation um die postive z-Achse (H+Z) |
Pitch(float) | Rotation um die negative x-Achse (P-X) |
Roll(float) | Rotation um die negative y-Achse (R-Z) |
HeightOffset(float) | Verschiebung der Höhe des Panoramamittelpunktes |
CreationTime(string) | Der Zeitpunkt der Bildaufnahmen wird in der "Attributierung" angezeigt, wenn gesetzt. |
(optional)AngleAxisMapping (string) | Legt die Reihenfolge, Achsenauswahl und Vorzeichen der Werte aus "Heading", "Pitch" und "Roll" zur Transformation vom Panorama- zum East-North-Up (ENU) fest. Sie können diesen Wert auch über unser Kalibrierungswerkzeug ermitteln. Kontaktieren Sie dazu gerne unseren Support. |
Konfiguration des Datentyps Ankerpunkt
1. Definition der Rotationsachsen (Lokale Kameradaten)
Diese Werte beschreiben die Orientierung der Kamera zum Zeitpunkt der Aufnahme relativ zum Fahrzeug:
Heading (Gierwinkel): Die Blickrichtung des Fahrzeugs (z. B. 0° = Nord). Beschreibt die horizontale Drehung um die Hochachse. Ein Heading von 0° bedeutet, dass die Kamera exakt nach Norden blickt. Positive Werte beschreiben eine Drehung des Fahrzeugs nach links (Westen). Im Mapping sorgt das Heading dafür, dass das Panorama geografisch eingenordet wird.
Pitch (Nickwinkel): Die Neigung der Kamera nach oben (positiv) oder unten (negativ). Beschreibt die Neigung entlang der Querachse. Ein positiver Pitch-Wert bedeutet, dass die Fahrzeugnase nach oben zeigt (Bergauffahrt). Das Mapping gleicht diese Neigung aus, damit der Horizont im Viewer waagerecht bleibt.
Roll (Wankwinkel): Die seitliche Schieflage der Kamera (positiv = Rechtsneigung). Beschreibt das Kippen um die Längsachse. Ein positiver Roll-Wert bedeutet, dass das Fahrzeug nach rechts hängt. Das Mapping korrigiert diese Schieflage, damit das Bild nicht "gekippt" im Raum steht.
2. Der Koordinatenwechsel:
Vom Fahrzeug ins Referenzsystem (ENU)
Die Kamera ist fest am Fahrzeug montiert. Damit das Panorama im Viewer später lagegenau auf der Karte erscheint, müssen wir die lokalen Kamerabewegungen in das globale East-North-Up (ENU) System transformieren.
Hierbei wird die Projektionskugel im Raum so platziert, dass sie die reale Ausrichtung zum Aufnahmezeitpunkt widerspiegelt. Erst wenn die Kugel korrekt im ENU-System "eingestellt" ist, kann sich der Nutzer später im Viewer nahtlos zwischen Karte und Panorama orientieren.
3. Das globale Referenzsystem (ENU)
In diesem rechtshändigen System sind die Achsen wie folgt fixiert:
X-Achse (East): Zeigt nach Osten.
Y-Achse (North): Zeigt nach Norden.
Z-Achse (Up): Zeigt lotrecht nach oben.
4. Räumliche Platzierung der Projektionskugel
In diesem Schritt wird die Kugel fest im Raum orientiert. Es handelt sich nicht um die spätere Nutzersteuerung (das Umschauen), sondern um die initiale Justierung der "Leinwand". Damit die Bildinhalte (z. B. ein Kirchturm im Norden) auch im digitalen Zwilling im Norden stehen, muss die Kugel basierend auf den Sensorwerten im Raum platziert werden.
5. Drehrichtung und Mapping-Logik zur Platzierung
Für das Mapping im Switchboard gilt: Positive Winkelwerte platzieren die Kugel durch eine Drehung im Uhrzeigersinn um die jeweilige Achse des ENU-Systems.
Um die Kugel deckungsgleich mit der realen Umgebung auszurichten, wird folgendes Standard-Mapping angewendet:
| Parameter | Mapping | Wirkung auf die Platzierung |
Heading | H+Z | Richtet die Kugel horizontal aus (Rotation um Z). |
Roll | R-Y | Gleicht die seitliche Schieflage über die Längsachse (Y) aus. |
Pitch | P-X | Gleicht die Neigung (hoch/runter) über die Querachse (X) aus. |
6. Die beiden Welten der Rotation
Es handelt sich um zwei unterschiedliche Koordinatensystemen, die über das AngleAxisMapping im Switchboard verbunden müssen.
Die Extrinsische Welt: Das Fahrzeug auf der Straße (Draußen)
In der echten Welt bewegt sich das Fahrzeug in einem festen Bezugssystem. Das Fahrzeug hat Sensoren (IMU, GPS), die diese Bewegung messen. Diese Sensoren denken oft extrinsisch, weil sie sich auf die feste Welt beziehen:
- Das feste Welt-System (z. B. ENU): Norden (Y) ist immer Norden, Osten (X) ist immer Osten, Oben (Z) ist immer Oben.
- Die Messung: Der Sensor sagt: "Das Fahrzeug ist 45° nach links gedreht (Heading um Z)". Wenn sich das Fahrzeug danach an einem Steilhang um 20° nach oben neigt (Pitch), erfolgt diese Drehung (für den Sensor oft) immer noch um die feste, unbewegte Ost-West-Achse der Welt, egal in welche Himmelsrichtung das Auto gerade schaut.
Die Intrinsische Welt: Die Projektionskugel im Viewer (Drinnen)
Im Viewer wollen wir dieses Panorama darstellen. Wir haben eine virtuelle Kugel, auf der das Bild klebt. Der Betrachter sitzt im Zentrum. Um das Panorama korrekt im ENU-Raum zu "verankern" (einnorden, Horizont gerade rücken), müssen wir diese Kugel rotieren.
- Das mitdrehende lokale System (Intrinsisch): Wenn wir die Kugel im Switchboard rotieren, nutzen wir das AngleAxisMapping. Dieses arbeitet intrinsisch. Das bedeutet: Die Rotationsachsen kleben an der Kugel.
Der Vorgang: Wenn wir die Kugel zuerst um 45° (H) drehen, wandert ihre eigene Querachse (X') mit. Die nächste Drehung (P) erfolgt dann um diese bereits mitgedrehte, neue Achse
7. Die Konfiguration
- Der Sensor (Draußen) liefert uns Winkel für Drehungen um feste Achsen (X, dann Y, dann Z).
- Der Viewer (Drinnen) führt Drehungen um mitdrehende Achsen aus.
Um von der extrinsischen Welt des Sensors in die intrinsische Welt der Kugel zu kommen, müssen wir die mathematische Äquivalenz nutzen.
Die goldene Regel: Eine extrinsische Rotation um die festen Weltachsen in der Reihenfolge H->P->R führt zum exakt gleichen Ergebnis wie eine intrinsische Rotation um die mitgedrehten lokalen Achsen in der Reihenfolge R-> P->H.
ImageId Ankerpunkt
Dieser Wert beschreibt den Bildnamen. Über ImageId (string) werden die Panorama-Spheres den Panoramabilddateien zugeordnet. Der Datentyp Panorama-Sphere setzt ein äquirektanguläres Panorama als Bilddatei voraus. Rechts abgebildet wird ein vereinfachtes äquirektanguläres Panorama mit einem Haus, einem See und einem Baum abgebildet. Anhand dieses Bildes sollen nachfolgend die Attribute Heading, Pitch und Roll in den jeweils nebenliegenden Bildern erklärt werden.
Heading Ankerpunkt
Dieses Attribut enthält den Winkel in Grad, der die Rotation um die negative z-Achse im ENU System (EastNorthUp) angibt. Heading (float) wird auch als Gieren oder Schlingern im körperfesten Koordinatensystem bezeichnet. Der Winkel gibt die Abweichung der Panoramabildmitte zur Nordrichtung an. Läge die Bildmitte eines Panoramas beispielsweise genau gen Osten, wäre Heading genau bei 90°. |
Pitch Ankerpunkt
Dieses Attribut enthält den Winkel in Grad, der die Rotation um die negative y-Achse im ENU System (EastNorthUp) angibt. Pitch (float) wird auch als Nicken um die Querachse im körperfesten Koordinatensystem bezeichnet.
Der Winkel gibt die Abweichung der Panoramabildmitte
zum Horizont an.
Läge die Bildmitte eines Panoramas beispielsweise genau im Zenit, wäre Pitch genau bei 90°.
Roll Ankerpunkt
Dieses Attribut enthält den Winkel in Grad, der die Rotation um die x-Achse im ENU System (EastNorthUp) angibt. Roll (float) wird auch als Rollen und Wanken um die Längsachse im körperfesten Koordinatensystem bezeichnet.
Der Winkel gibt die Abweichung des Horizontes im Panorama zum tatsächlichen Horizont in PlexMap 3D an.
Wäre Roll beispielsweise bei 90° müssten Betrachter:innen sich das Kugelpanorama auf dem rechten Ohr liegend anschauen, um das Bild korrekt ausgerichtet sehen zu können.
HeightOffset Ankerpunkt
Der optionale Wert HeightOffset (float) dient der Veränderung des Panoramamittelpunkes.
Panoramabilder werden in PlexMap 3D als Punkte in einer 3D-Karte dargestellt. Per Klick auf einen dieser sogenannten Aktivierungspunkte wird ein Panoramabild geöffnet. Die Aktivierungspunkte entsprechen räumlich zunächst immer dem Panoramamittelpunkt.
In einigen Fällen kann es jedoch sinnvoll sein, den Aktivierungspunkt z.B. etwas nach unten zu verschieben, damit dieser perfekt auf einer Straße liegt. In diesem Fall wird der Aktivierungspunkt über die Funktion Verschieben z.B. zwei Meter nach unten verschoben. Damit das Panoramabild nun immer noch stimmt, muss jetzt der Panoramamittelpunkt um zwei Meter nach oben verschoben werden. Dafür dient der Wert HeightOffset. Im beschriebenen Beispiel setzen Sie HeightOffset auf „2“, um den Panoramamittelpunkt zwei Meter nach oben zu verschieben.