Unser Android-Projekt verwendet derzeit ArcGIS Maps SDK für Kotlin 300.0.0. Wir nutzen CustomLocationDataSource, um Positionsdaten von externen GNSS-Empfängern anzuzeigen, einschließlich Empfängern, die dekodierte Standortdaten statt NMEA-Sätze liefern.
Wir untersuchen Berichte über verzögerte Kartenpositionsaktualisierungen sowie Inkonsistenzen bei Position oder Genauigkeit bei Verwendung externer GPS-Empfänger. Wir möchten unseren benutzerdefinierten Anbieter mit dem vorgesehenen SDK-Vertrag abgleichen; es ist nicht bestätigt, dass das SDK diese Symptome verursacht.
Unser CustomLocationDataSource.LocationProvider liefert separate Flow<Location>- und Flow<Double>-Streams. Wir wandeln jede externe Android-Position in eine ArcGIS Location um, unter Verwendung von WGS84-Koordinaten, horizontaler und vertikaler Genauigkeit, Geschwindigkeit und Kurs. Für externe Empfänger wird der Heading-Stream aus dem Kurs der Positionsbestimmung abgeleitet. Unser Location.create-Aufruf übergibt den ursprünglichen Zeitstempel der Positionsbestimmung des Empfängers nicht explizit. Einige nicht verfügbare oder ungültige Genauigkeits- und Bewegungswerte werden derzeit auf 0 gesetzt.
Könnten Sie uns zu Folgendem beraten?
- Wie sollte eine benutzerdefinierte Quelle nicht verfügbare Genauigkeit, Geschwindigkeit, Kurs oder Heading darstellen? Könnte die Verwendung von 0 für fehlende Messwerte beeinflussen, wie LocationDisplay eine Positionsbestimmung behandelt?
- Wie sollten wir die ursprüngliche Zeit der Positionsbestimmung des Empfängers bewahren oder validieren? Sollte der Anbieter veraltete oder außerhalb der Reihenfolge liegende Positionsbestimmungen vor der Ausgabe verwerfen, insbesondere nach einer Wiederverbindung oder Quellenänderung?
- Ist es angemessen, den separaten Heading-Stream aus dem Kurs der Positionsbestimmung abzuleiten? Gibt es Anforderungen an Reihenfolge oder Synchronisation zwischen den Location- und Heading-Flows?
- Welche Empfehlungen zu Pufferung, Aktualisierungsrate oder Instrumentierung würden uns helfen, Verzögerungen vor der Ausgabe einer Positionsbestimmung durch unseren Anbieter von Verzögerungen in CustomLocationDataSource oder dessen Anzeige zu unterscheiden? Animiert oder interpoliert LocationDisplay eingehende Positionen?
Ist CustomLocationDataSource für externe Empfänger ohne NMEA die empfohlene Methode? Über das grundlegende Beispiel hinaus, welche Hinweise können Sie uns für eine produktive Implementierung geben, die Frische der Positionsbestimmungen, fehlende Messwerte, Wiederverbindungen und variable Aktualisierungsraten berücksichtigt?