Leitfaden und bewährte Methoden für die Verwendung mehrerer Karten
In der Mega-App-Entwicklung stellt sich häufig die Frage, ob mehrere Karten (Blocks) in einer Positionierungsbibliothek hinzugefügt werden sollten. Eine falsche Verwendung mehrerer Karten kann nicht nur die Anwendungsfähigkeiten beeinträchtigen, sondern auch zu Leistungseinbußen und Positionssprüngen führen.
Dieser Leitfaden hilft Ihnen, die Funktion für mehrere Karten korrekt zu verstehen und anzuwenden, um häufige Fehler zu vermeiden.
Warum sollte das Hinzufügen mehrerer Karten vermieden werden?
Grundprinzip: Fügen Sie nicht mehrere Karten hinzu, um die "Abdeckung zu erweitern".
In den meisten Fällen sollte eine Positionierungsbibliothek nur eine einzelne Mega Block-Karte für einen Standort enthalten. Hier sind einige häufige falsche Anwendungen, die unbedingt vermieden werden sollten:
Falsches Szenario A: Mehrere Bereiche
- Ansatz: Erstellen Sie separate Karten für verbundene Bereiche wie "Bereich A", "Bereich B" und "Bereich C" eines Geländes und fügen Sie alle drei Karten gleichzeitig zur Bibliothek hinzu, in der Hoffnung, dass Benutzer nahtlos zwischen den Bereichen wechseln können.
- Problem: Die drei Karten haben keine mathematische räumliche Beziehung zueinander und sind unabhängig. Aufgrund inkonsistenter Koordinatensysteme ist ein nahtloser Übergang nicht möglich, was zu Positionssprüngen an den Bereichsgrenzen führt.
- Lösung: Für solche Szenarien ist der beste Ansatz, "Bereich A", "Bereich B" und "Bereich C" gemäß der Methode zur Erfassung großer räumlicher Daten zu erfassen und ausreichende Überlappungsbereiche sicherzustellen. Führen Sie dann die Kartierung gemäß der Anleitung für Fusionsaufgaben großer Bereiche durch. Dabei entsteht eine einzelne Block-Karte mit einem einheitlichen Koordinatensystem, die alle Bereiche umfasst. Diese Karte kann zur Positionierungsbibliothek hinzugefügt werden.
Falsches Szenario B: Mehrere Standorte
- Ansatz: Erstellen Sie eine Karte für ein Einkaufszentrum an Standort A und eine weitere für ein gleichnamiges Einkaufszentrum an Standort B, um beide in einer App nutzbar zu machen.
- Problem: Dies verlangsamt die Positionsbestimmung erheblich. Das Gerät muss alle Karten in der Bibliothek gleichzeitig abgleichen, was die Rechenlast erhöht, die Initialisierungszeit verlängert und Ressourcen verschwendet, da Benutzer sich nur an einem Standort gleichzeitig aufhalten können. Hohe Anfrageaufkommen an einem Standort beeinträchtigen auch die Antwortzeiten des anderen.
- Lösung: Erstellen Sie separate Positionierungsbibliotheken für verschiedene Standorte, wobei jede Bibliothek nur eine Karte enthält. Greifen Sie in der App dynamisch auf die Bibliothek des aktuellen Benutzerstandorts zu.
Falsches Szenario C: Zeitliche Unterschiede
- Ansatz: Erfassen und kartieren Sie denselben Standort bei Tageslicht und bei Nacht, fügen Sie beide Karten zur Bibliothek hinzu, um eine konsistente Erfahrung zu unterschiedlichen Tageszeiten zu ermöglichen.
- Problem: Ähnlich wie Szenario A besteht keine garantierte räumliche Beziehung zwischen den separaten Kartierungsergebnissen.
- Lösung: Führen Sie die Tages- und Nachterfassung gemäß der Anleitung für Fusionsaufgaben großer Bereiche zusammen. Fügen Sie den resultierenden einzelnen Block zur Positionierungsbibliothek hinzu.
Falsches Szenario D: Versionsübergreifend
- Ansatz: Fügen Sie eine aktualisierte Version B einer Karte für einen bestehenden Standort (Version A) zur selben Bibliothek hinzu, um die neue Karte ohne App-Neuvorstellung nutzen zu können.
- Problem: Positionsergebnisse springen zwischen den unterschiedlichen Versionen der Karte desselben Standorts.
- Lösung: Aktualisieren Sie die alte Kartierung gemäß der Anleitung für verlustfreie vollständige Updates, um Datenaktualisierungen bei Beibehaltung des Koordinatensystems zu ermöglichen. Fügen Sie die aktualisierte Karte hinzu und entfernen Sie unbedingt die ursprüngliche Karte aus der Bibliothek.
Falsches Szenario E: Ergänzende Updates
- Ansatz: Fügen Sie eine neue kleine Karte B für lokal veränderte oder nachträglich erfasste Bereiche eines bestehenden Standorts (Karte A) zur selben Bibliothek hinzu, um die Änderungen ohne App-Neuvorstellung nutzbar zu machen.
- Problem: Die neue Teilkarte B und die alte Karte A haben keine räumliche Koordinatenbeziehung, was zu Positionssprüngen im Übergangsbereich führt.
- Lösung: Führen Sie ein ergänzendes Update der alten Kartierung gemäß der Anleitung für ergänzende Updates durch, um die Koordinatenkonsistenz zu wahren. Fügen Sie die aktualisierte Karte hinzu und entfernen Sie unbedingt die ursprüngliche Karte aus der Bibliothek.
Zusammenfassung: Der Versuch, mehrere kleine Karten zu einer großen Welt zusammenzusetzen, ist für hochpräzise Mega-Karten ungeeignet. Megas Designphilosophie basiert auf einer räumlich kontinuierlichen, koordinatenvereinheitlichten, zeitlich konsistenten hochpräzisen 3D-Darstellung.
Szenarien, die tatsächlich mehrere Karten erfordern
Wann ist es dann wirklich notwendig, mehrere Karten (Blocks) in einer Bibliothek zu haben? Hauptsächlich bei "parallelen Aufgaben" oder "Mehrfachraumsauswahl", nicht bei "räumlicher Verknüpfung".
Szenario 1: Mehrfachraumsauswahl
- Beschreibung: Ihre App bedient mehrere völlig getrennte Bereiche an einem Standort, die aufgrund von Gebäudestrukturen oder Erfassungseinschränkungen nicht vollständig verbunden werden können. Benutzer müssen möglicherweise zuerst ihren Bereich auswählen (z.B. verschiedene Etagen eines großen Krankenhauses).
- Implementierung: Nach Benutzerauswahl dynamisch aktivieren Sie nur die entsprechende einzelne Karte. Zu jedem Zeitpunkt ist nur eine Karte in der Berechnung aktiv. Bei Bereichswechsel muss die Auswahl neu bestätigt werden.
Szenario 2: Parallele Aufgaben
- Beschreibung: Ihre App muss gleichzeitig zwei oder mehrere unabhängige Objektverfolgungsaufgaben an einem Standort handhaben, wobei die Objekte nicht miteinander verbunden sind und stark unterschiedliche Merkmale aufweisen (z.B. mehrere Ausstellungsstücke in einem Museum).
- Implementierung: In diesem fortgeschrittenen Szenario kann für jedes Objekt eine separate "Objektkarte" erstellt und alle einer Bibliothek hinzugefügt werden. Beachten Sie: Die Leistung hängt von der Anzahl der Objekte ab. Bei vielen Objekten sollten Sie Bibliotheken nach Objektgruppen aufteilen, um Leistung und Anzahl abzuwägen.
Verhalten der Render-Engine bei mehreren Karten
Beachten Sie, dass bei der Verwendung mehrerer Karten das 3D-Rendering je nach Plattform und Version unterschiedlich ist.
Empfohlene bewährte Methoden
Falls Sie tatsächlich zu den unter Szenarien, die tatsächlich mehrere Karten erfordern beschriebenen Szenarien gehören oder Mehrfachkarten verwenden müssen, befolgen Sie diese Grundsätze:
- Aktivierung bei Bedarf: Laden Sie nur die entsprechenden 3D-Inhalte, wenn Benutzer eine Auswahl treffen oder einen bestimmten Bereich betreten. Nutzen Sie Vorabinformationen in Positionsanfragen.
- Dynamisches Wechseln: Bieten Sie eine klare UI für die Bereichsauswahl. Entladen Sie die 3D-Inhalte der alten Karte, bevor Sie die der neuen laden, um Speicher freizugeben.
- Zustandsverwaltung: Verwalten Sie explizit die aktuell aktive Karte im Code. Überwachen Sie die Block-ID in Positionsergebnissen, um Feedback unterschiedlichen Karten zuzuordnen.
- Leistungsüberwachung: Beobachten Sie bei Mehrfachkarten-Nutzung Speicherverbrauch, Positionslatenz und Energieverbrauch des Geräts, um flüssiges Laufen der App sicherzustellen.
Zusammenfassend ist das Festhalten am Prinzip "Ein Szenario, eine Karte" für die meisten Anwendungen die beste Wahl, um Leistung und Stabilität der Mega-Positionsbestimmung zu gewährleisten.